什么时候应该使用ConcurrentSkipListMap?

在Java中,ConcurrentHashMap有更好的multithreading解决方案。那我ConcurrentSkipListMap什么时候应该使用?这是多余的吗?

这两者之间的多线程方面是否常见?

回答:

这两个类在某些方面有所不同。

ConcurrentHashMap不保证*其合同约定的运行时间。它还允许调整某些负载因子(大约是同时修改它的线程数)。

另一方面,ConcurrentSkipListMap可确保各种操作的平均O(log(n))性能。它也不支持为了并发而进行调整。

ConcurrentSkipListMap还具有许多ConcurrentHashMap不执行的操作:ceilingEntry /

Key,floorEntry / Key等。它还维护一个排序顺序,如果您使用,则必须计算(否则费用很高)ConcurrentHashMap

基本上,针对不同的用例提供了不同的实现。如果您需要快速添加单键/值对和快速查找单键,请使用HashMap。如果您需要更快的顺序遍历,并且可以承受额外的插入费用,请使用SkipListMap

*尽管我希望实现与O(1)插入/查找的常规哈希映射保证大致相符;忽略重新哈希

以上是 什么时候应该使用ConcurrentSkipListMap? 的全部内容, 来源链接: utcz.com/qa/422261.html

回到顶部