ConcurrentSkipListSet什么时候有用?

ConcurrentSkipListSet什么时候有用?,第1张

ConcurrentSkipListSet什么时候有用?

当您需要一个可以被多个线程访问的排序容器时,ConcurrentSkipListSet和ConcurrentSkipListMap很有用。这些本质上是并发代码的TreeMap和TreeSet的等效项。

JDK
6的实现基于 IBM Maged
Michael的高性能动态无锁哈希表和基于列表的集,这表明您可以使用比较和交换(CAS) *** 作原子地对跳过列表执行很多 *** 作。这些是无锁的,因此您不必担心

synchronized
使用这些类时(对于大多数 *** 作)的开销。

Java 目前没有基于Red-Black树的并发Map /
Set实现。我通过文献查了一下,发现一对夫妇 的论文即表明并发RB树跑赢跳跃列表,但很多这些测试都是用做事务性的存储器,这是不是在硬件支持目前任何主要的架构。

我假设JDK的人员在此处使用了跳过列表,因为该实现是众所周知的,并且使其无锁是简单且可移植的(使用CAS)。如果有人想澄清一下,请这样做。我很好奇。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5083166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存