发明授权
US07539849B1 Maintaining a double-ended queue in a contiguous array with concurrent non-blocking insert and remove operations using a double compare-and-swap primitive
有权
在具有并发的非阻塞插入和删除操作的连续数组中维护双端口队列,使用双重比较和交换原语
- 专利标题: Maintaining a double-ended queue in a contiguous array with concurrent non-blocking insert and remove operations using a double compare-and-swap primitive
- 专利标题(中): 在具有并发的非阻塞插入和删除操作的连续数组中维护双端口队列,使用双重比较和交换原语
-
申请号: US09547288申请日: 2000-04-11
-
公开(公告)号: US07539849B1公开(公告)日: 2009-05-26
- 发明人: Nir N. Shavit , Ole Agesen , David L. Detlefs , Christine H. Flood , Alexander T. Garthwaite , Paul A. Martin , Guy L. Steele, Jr.
- 申请人: Nir N. Shavit , Ole Agesen , David L. Detlefs , Christine H. Flood , Alexander T. Garthwaite , Paul A. Martin , Guy L. Steele, Jr.
- 申请人地址: US CA Santa Clara
- 专利权人: Sun Microsystems, Inc.
- 当前专利权人: Sun Microsystems, Inc.
- 当前专利权人地址: US CA Santa Clara
- 代理机构: Osha • Liang LLP
- 主分类号: G06F7/06
- IPC分类号: G06F7/06
摘要:
An array-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 array-based algorithm allows uninterrupted concurrent access to both ends of the deque, while returning appropriate exceptions in the boundary cases when the deque is empty or full. An interesting characteristic of the concurrent deque implementation is that a processor can detect these boundary cases, e.g., determine whether the array is empty or full, without checking the relative locations of the two end pointers in an atomic operation.
信息查询