Concurrent data structure: Difference between revisions

Content deleted Content added
Uriah123 (talk | contribs)
Uriah123 (talk | contribs)
Line 56:
(examples can be found in the [[Java concurrency]] software
library).
 
The safety properties of concurrent data structures must capture their
behavior given the many possible interleavings of methods
called by different threads. It is quite
intuitive to specify how abstract data structures
behave in a sequential setting in which there are no interleavings.
Therefore, many mainstream approaches for arguing the safety properties of a
concurrent data structure (such as [[serializability]], [[linearizability]], [[sequential consistency]], and
[[quiescent consistency]]) specify the structures properties
sequentially, and map its concurrent executions to
a collection of sequential ones. There are various approaches for
doing this, called consistency conditions.
 
In order to guarantee the safety and liveness properties, concurrent
Line 64 ⟶ 76:
using special primitive synchronization operations (see [[Synchronization (computer science)#Process_synchronization|synchronization primitives]])
available on modern [[multiprocessing | multiprocessor machine]]s
that allow multiple threads to reach consensus. This consensus can be '''blocking''', achieved by using [[spin-lock | locks]] or without locks, in which case it is '''non-blocking'''. There is a wide body
of theory on the design of concurrent data structures (see
bibliographical references).