发明名称 Maintaining a double-ended queue as a linked-list with sentinel nodes and delete flags with concurrent non-blocking insert and remove operations using a double compare-and-swap primitive
摘要 A linked-list-based concurrent shared object implementation has been developed that provides non-blocking and linearizable access to the concurrent shared object. In an application of the underlying techniques to a deque, the linked-list-based algorithm allows non-blocking completion of access operations without restricting concurrency in accessing the deque's two ends. The new implementation is based at least in part on a new technique for splitting a pop operation into two steps, marking that a node is about to be deleted, and then deleting it. Once marked, the node logically deleted, and the actual deletion from the list can be deferred. In one realization, actual deletion is performed as part of a next push or pop operation performed at the corresponding end of the deque. An important aspect of the overall technique is synchronization of delete operations when processors detect that there are only marked nodes in the list and attempt to delete one or more of these nodes concurrently from both ends of the deque.
申请公布号 US7000234(B1) 申请公布日期 2006.02.14
申请号 US20000547290 申请日期 2000.04.11
申请人 SUN MICROSYSTEMS, INC. 发明人 SHAVIT NIR N.;MARTIN PAUL A.;STEELE, JR. GUY L.
分类号 G06F9/54;G06F5/10;G06F7/78;G06F9/46 主分类号 G06F9/54
代理机构 代理人
主权项
地址