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. antlr4解析樹線程安全嗎?
- 2. java線程安全:線程安全嗎?
- 3. 線程安全
- 4. 線程安全
- 5. 線程安全
- 6. 線程安全
- 7. 線程安全
- 8. 線程安全
- 9. 線程安全
- 10. 線程安全
- 11. 線程安全
- 12. 線程安全
- 13. 線程安全應用程序中的線程安全
- 14. 線程安全:: random_device
- 15. 線程安全singelton
- 16. 線程安全bloomfilter
- 17. httpurlconnection線程安全
- 18. 線程安全OfType
- 19. 線程安全UITableView
- 20. nftw線程安全
- 21. IndexedDB線程安全
- 22. Mysqldatasource線程安全
- 23. CDatabase線程安全
- 24. NSMutableString線程安全?
- 25. SolrJ線程安全
- 26. Database.SqlQuery線程安全
- 27. 線程安全的
- 28. 線程安全,Silverlight
- 29. GTK +線程安全
- 30. Array.forEach線程安全
...反對使用java.util.concurrent。*容器作爲基礎?什麼會使「樹」不是線程安全的? – BRFennPocock
什麼樣的樹,爲了什麼目的? B樹,紅黑樹等? –
@BRPocock:同樣的事情會使任何其他數據結構非線程安全:對其狀態進行非同步的非原子併發更新。 –