首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么没有并发的TreeMap?

为什么没有并发的TreeMap?
EN

Stack Overflow用户
提问于 2013-07-15 14:14:33
回答 2查看 30K关注 0票数 43

我有几个关于java.util.concurrent包的问题:

  1. 为什么在java中,一边是非并发的TreeMap,另一边是并发的ConcurrentSkipListMap
  2. 为什么他们不叫它ConcurrentTreeMap呢?可以说,SkipListMap包括一个TreeMap吗?

例如,非并发HashMap具有其并发对应的ConcurrentHashMap。为什么TreeMap没有发生这种情况?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-15 14:17:51

为什么一边是非并发TreeMap,另一边是ConcurrentSkipListMap?

我怀疑之所以这样做是因为并发树结构太困难了,或者受到了锁定性能问题的困扰。就有序集合而言,SkipLists是非常简单的数据结构,为树提供了类似的行为和性能,因此ConcurrentSkipListMap (和Set)可能更容易并发。

实际上,我对自己没有一个非并发的SkipList集合感到更失望。

可以肯定地说,SkipListMap包括一个TreeMap吗?

不是的。可以肯定地说,SkipList在有序的项集合方面提供了类似的特性,这些集合为O(logN)提供了查找、插入、删除等方面的性能。至少它给出了这种性能的概率近似。

这是一个关于船长的好消息。它们是非常酷的数据结构。我只能希望这些都是在现代编程数据结构类中教授的。

票数 48
EN

Stack Overflow用户

发布于 2013-07-15 14:20:57

TreeMap类是这样调用的,因为它是使用平衡搜索树实现的。ConcurrentSkipListMap是这样被调用的,因为它是使用跳过列表实现的。为什么没有并发版本的TreeMap?可能是因为很难建立一个扩展到高并发级别的树结构;并发跳过列表更容易正确实现。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17656373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档