以前的代碼就像;在向量上避免ConcurrentModificationException;哪裏需要迭代;它在該向量的同步塊內執行。所以它通過使多個線程進入BLOCKED狀態來獲取在不同的API上的該Vector上的鎖定而導致非常差的性能。如何在Sets.newSetFromMap上執行clone()(map)
我決定在我的項目中將Vector
更換爲Collections.newSetFromMap(new ConcurrentHashMap<psConference,Boolean>());
。
所以在將Vector更改爲Concurrent集合後,我已經刪除了所有的SYNCH塊。
但是,這裏的問題是我的一些代碼是在該Vector上執行clone()。
- 如何做到這一點,因爲我只有設置界面?
- Vector clone()是深度克隆還是淺克隆?
- 也請告訴我,布爾的意義在
ConcurrentHashMap<psConference,Boolean>
非常感謝你!我不知道「迭代器被設計爲一次只能被一個線程使用」這一點。我認爲多個迭代器可以同時用於多個線程。我的錯!!!! –
親愛的@ortang;你能否也請回答我的相關問題http://codereview.stackexchange.com/questions/32280/sychronized-block-over-concurrent-collections –