Q
线程安全树
1
A
回答
4
SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));
注意,这不仅使同步每次调用。在很多情况下,这对于应用程序而言是错误的粒度,并且您最好在更高级别进行同步。请参阅docs for synchronizedSortedMap。
0
您可以使用Collections.synchronizedSet()
或synchronizedMap()
围绕各个方法添加同步,但是线程安全并不是数据结构的属性,而是应用程序的真正属性。如果遍历树,或者执行一系列需要原子操作的操作,则包装将不够用。
0
A java.util.concurrent.ConcurrentSkipListMap可能是感兴趣的。这对大多数用途来说都是过分的,但如果你需要细粒度的同步,那就没有什么比这更好的了。过度杀伤击败。当然,这不是一棵树,而是做同样的工作。我不相信你可以在真正的树中获得低级别的同步。
+0
但是还有一个等价的java.util.concurrent.concurrentSkipListSet也可用。这是完美的这种情况。比使用SyncronizedSet()更有效。 – Linus
相关问题
- 1. 线程安全
- 2. 线程安全
- 3. 线程安全
- 4. 线程安全
- 5. 线程安全
- 6. 线程安全
- 7. 线程安全
- 8. 线程安全应用程序中的线程安全
- 9. 安全Perl线程
- 10. unordered_map线程安全
- 11. WriteFile线程安全
- 12. CFAttributedString线程安全
- 13. Boost.Asio线程安全
- 14. NSMutableString线程安全?
- 15. 线程安全bloomfilter
- 16. SolrJ线程安全
- 17. QAbstractItemModel线程安全
- 18. UI线程安全
- 19. 线程安全InetAddress.isReachable()
- 20. C#线程安全
- 21. 线程安全log4net
- 22. 线程安全,Silverlight
- 23. 线程安全的
- 24. httpurlconnection线程安全
- 25. CDatabase线程安全
- 26. clojure.lang.RT线程安全?
- 27. 线程安全OutputStreamWriter
- 28. 线程安全QQueue
- 29. 线程安全UITableView
- 30. 线程安全nsdictionary
...反对使用java.util.concurrent。*容器作为基础?什么会使“树”不是线程安全的? – BRFennPocock
什么样的树,为了什么目的? B树,红黑树等? –
@BRPocock:同样的事情会使任何其他数据结构非线程安全:对其状态进行非同步的非原子并发更新。 –