我有關於java.util.concurrent;
包幾個問題:爲什麼沒有併發的TreeMap?
爲什麼Java API中有一側的非併發TreeMap和一個其他併發ConcurrentSkipListMap?
他們爲什麼不把它叫做ConcurrentTreeMap?說SkipListMap包含一個TreeMap是否安全?
例如非併發HashMap
已經得到了它的併發對應ConcurrentHashMap
。爲什麼TreeMap
不會發生?
我有關於java.util.concurrent;
包幾個問題:爲什麼沒有併發的TreeMap?
爲什麼Java API中有一側的非併發TreeMap和一個其他併發ConcurrentSkipListMap?
他們爲什麼不把它叫做ConcurrentTreeMap?說SkipListMap包含一個TreeMap是否安全?
例如非併發HashMap
已經得到了它的併發對應ConcurrentHashMap
。爲什麼TreeMap
不會發生?
爲什麼一邊是非併發的TreeMap,另一邊是ConcurrentSkipListMap?
我懷疑這是因爲製作併發樹結構太困難或遭受鎖定性能問題。就有序集合而言,SkipLists是非常簡單的數據結構,爲樹提供了類似的行爲和性能。
我其實更加失望的是我自己並沒有一個非併發的SkipList集合。
可以肯定的說SkipListMap包含TreeMap嗎?
號這是肯定地說,一個SkipList
給出了項目的有序集合,它爲查找,插入,刪除等O(logN)
性能方面是相似的特點..它至少給人一種概率逼近的表現。
這是good page about skiplists。他們是非常酷的數據結構。我只能希望在現代編程數據結構類中教授這些東西。
TreeMap
類是這樣調用的,因爲它是使用balanced search tree實現的。 ConcurrentSkipListMap
就是這樣調用的,因爲它使用skip list實現。爲什麼沒有TreeMap
的併發版本?可能是因爲很難製作可擴展到高級併發性的樹結構;併發跳過列表更容易正確實施。
你的問題是不可理解的。每個物體呢?它爲什麼存在?它能做什麼?它是如何聞到的? – hexafraction
向誰表示與編程無關。 API與編程有關。 – Rollerball
我從來沒有說過它沒有關係。我剛纔說這完全不清楚。 – hexafraction