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

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



