并发哈希与自然并行性
1. 引言
在之前的研究中,我们探讨了如何从队列、栈和计数器等数据结构中提取并行性,这些数据结构提供的并行机会较少。而现在,我们将采取相反的方法,研究并发哈希,这是一个看似“自然可并行化”的问题,用更专业的术语来说,是不相交访问并行,意味着并发方法调用可能访问不相交的位置,因此几乎不需要同步。
哈希是顺序集合实现中常用的技术,可确保 contains() 、 add() 和 remove() 调用的平均时间为常数。而之前研究的并发集合实现所需时间与集合大小呈线性关系。在本文中,我们将研究使哈希并发的方法,有时使用锁,有时不使用。尽管哈希似乎自然可并行化,但设计一个有效的并发哈希算法并非易事。
集合接口提供了以下返回布尔值的方法:
- add(x) :将 x 添加到集合中。如果 x 不存在,则返回 true ,否则返回 false 。
- remove(x) :从集合中移除 x 。如果 x 存在,则返回 true ,否则返回 false 。
- contains(x) :如果 x 存在,则返回 true ,否则返回 false 。
超级会员免费看
订阅专栏 解锁全文
3863

被折叠的 条评论
为什么被折叠?



