什么时候应该使用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