• No results found

Hand-over-hand locking

In document Parallel linked lists (Page 94-103)

The lock acquisition protocol used byfindinFineSetis called hand-over-handlocking orlock coupling.

• Always keepingat least one node lockedprevents interference between threads; otherwise this may happen:

head a b e f g tail

pred curr

pred currpred currpred curr

pred curr

• Locking two nodes at once is sufficient topreventproblems with conflicting operations: threads proceed along the linked list in order, without one thread “overtaking” another thread that is further out

• The protocol ensures that locks are acquired by all threads in the same order, thusavoiding deadlocks

35 / 76

Hand-over-hand locking

The lock acquisition protocol used byfindinFineSetis called hand-over-handlocking orlock coupling.

• Always keepingat least one node lockedprevents interference between threads; otherwise this may happen:

head

pred currpred curr

pred curr

• Locking two nodes at once is sufficient topreventproblems with conflicting operations: threads proceed along the linked list in order, without one thread “overtaking” another thread that is further out

• The protocol ensures that locks are acquired by all threads in the same order, thusavoiding deadlocks

35 / 76

Hand-over-hand locking

The lock acquisition protocol used byfindinFineSetis called hand-over-handlocking orlock coupling.

• Always keepingat least one node lockedprevents interference between threads; otherwise this may happen:

head

pred currpred curr

pred curr

• Locking two nodes at once is sufficient topreventproblems with conflicting operations: threads proceed along the linked list in order, without one thread “overtaking” another thread that is further out

• The protocol ensures that locks are acquired by all threads in the same order, thusavoiding deadlocks

35 / 76

Hand-over-hand locking

The lock acquisition protocol used byfindinFineSetis called hand-over-handlocking orlock coupling.

• Always keepingat least one node lockedprevents interference between threads; otherwise this may happen:

head a

• Locking two nodes at once is sufficient topreventproblems with conflicting operations: threads proceed along the linked list in order, without one thread “overtaking” another thread that is further out

• The protocol ensures that locks are acquired by all threads in the same order, thusavoiding deadlocks

35 / 76

Hand-over-hand locking

The lock acquisition protocol used byfindinFineSetis called hand-over-handlocking orlock coupling.

• Always keepingat least one node lockedprevents interference between threads; otherwise this may happen:

head a b

pred currpred curr

pred curr

pred curr

• Locking two nodes at once is sufficient topreventproblems with conflicting operations: threads proceed along the linked list in order, without one thread “overtaking” another thread that is further out

• The protocol ensures that locks are acquired by all threads in the same order, thusavoiding deadlocks

35 / 76

Hand-over-hand locking

The lock acquisition protocol used byfindinFineSetis called hand-over-handlocking orlock coupling.

• Always keepingat least one node lockedprevents interference between threads; otherwise this may happen:

head a b

pred currpred curr

pred curr

pred curr

• Locking two nodes at once is sufficient topreventproblems with conflicting operations: threads proceed along the linked list in order, without one thread “overtaking” another thread that is further out

• The protocol ensures that locks are acquired by all threads in the same order, thusavoiding deadlocks

35 / 76

Hand-over-hand locking

The lock acquisition protocol used byfindinFineSetis called hand-over-handlocking orlock coupling.

• Always keepingat least one node lockedprevents interference between threads; otherwise this may happen:

head a b e

pred currpred currpred curr

pred curr

• Locking two nodes at once is sufficient topreventproblems with conflicting operations: threads proceed along the linked list in order, without one thread “overtaking” another thread that is further out

• The protocol ensures that locks are acquired by all threads in the same order, thusavoiding deadlocks

35 / 76

Hand-over-hand locking

The lock acquisition protocol used byfindinFineSetis called hand-over-handlocking orlock coupling.

• Always keepingat least one node lockedprevents interference between threads; otherwise this may happen:

head a b e

pred currpred currpred curr

pred curr This node has been removed!

• Locking two nodes at once is sufficient topreventproblems with conflicting operations: threads proceed along the linked list in order, without one thread “overtaking” another thread that is further out

• The protocol ensures that locks are acquired by all threads in the same order, thusavoiding deadlocks

35 / 76

Hand-over-hand locking

The lock acquisition protocol used byfindinFineSetis called hand-over-handlocking orlock coupling.

• Always keepingat least one node lockedprevents interference between threads; otherwise this may happen:

head a b e

pred currpred currpred curr

pred curr This node has been removed!

• Locking two nodes at once is sufficient topreventproblems with conflicting operations: threads proceed along the linked list in order, without one thread “overtaking” another thread that is further out

• The protocol ensures that locks are acquired by all threads in the same order, thusavoiding deadlocks

35 / 76

In document Parallel linked lists (Page 94-103)

Related documents