通過使用 Java 中的 VarHandle 類,您可以實作對物件的原子操作,通過這些類,如 AtomicReferenceArray 可以對陣列元素執行并發操作,而無需鎖定(同步)整個陣列結構,從而顯著提高性能。
其他同步和執行緒安全版本的集合沒有實作這種模型有什么具體原因嗎?
例如,Collections 類中的所有同步工廠方法都回傳其相應集合的版本,該版本使用同步方法鎖定整個集合!
uj5u.com熱心網友回復:
物件上的原子操作不會使整個集合一定是執行緒安全的。例如,集合中的同步工廠方法是使任意集合實作執行緒安全的唯一方法。
有可能VarHandle用于優化專為并發構建的集合,例如ConcurrentHashMap. 如果您認為VarHandles 可用于改進這些型別,則應提交功能請求。完全有可能只是沒有人愿意這樣做。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392757.html
標籤:爪哇 收藏 并发 java.util.concurrent
