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