Almost non-blocking linked stack implementation

作者: Hans-Juergen K. H. Boehm

DOI:

关键词: Association listSelf-organizing listList update problemComputer scienceDoubly linked listUnrolled linked listLinked listFree listComputer networkPointer swizzlingDistributed computing

摘要: A method and computer system for implementing, in a multithreaded environment, an almost non-blocking linked list allow lock-free access provided that certain conditions are met. The approach involves: associating pointer auxiliary data structure with each list, using compare-and-swap (CAS) operation, making slight modification of values associated nodes under conditions. CAS operation guards against setting the pointers incorrectly during insertion removal operations. structure, also referred to as ‘black list,’ holds dynamic values, typically process being removed by thread.

参考文章(18)
David L. Detlefs, Alexander T. Garthwaite, Guy L. Steele, Paul A. Martin, Mark S. Moir, Concurrent shared object implemented using a linked-list with amortized node allocation ,(2001)
Brian Ralph Larson, Dance/multitude concurrent computation ,(1997)
David L. Detlefs, Nir N. Shavit, Alexander T. Garthwaite, Guy L. Steele, Paul A. Martin, Mark S. Moir, Lock-free implementation of concurrent shared object with dynamic node allocation and distinguishing pointer value ,(2001)
Maurice Herlihy, Mark S. Moir, Victor Luchangco, Single-word lock-free reference counting ,(2003)
Nick M. Mykris, Matthew M. Wilding, Michael H. Masters, John K. Gee, David S. Hardin, Allen P. Mass, David A. Greve, Real time processor capable of concurrently running multiple independent JAVA machines ,(1998)