在Java中,我需要一個對象,它是一個對象,其中包含60個LinkedBlockingQueue
。在程序開始時,ArrayList
將爲,同時仍然是單線程的。然後一個線程.add()
到LinkedBlockingQueue
s,而另一個線程將.poll()
。有沒有必要明確同步這個對象?同步BlockingQueues的ArrayList
0
A
回答
4
不可以,如果列表在初始化後沒有被修改,那麼你不需要同步它。我建議你使用UnmodifiableList而不是ArrayList - 如果有人試圖在初始化後修改列表,你會得到一個運行時異常,這比擁有競爭條件更可取。
0
是否有任何需要顯式同步此對象?
如果用叉子叉線程後完成建設List
那麼你的罰款。但是,如果它真的是不可變的,我會使用一個數組而不是一個集合。你可以這樣做:
BlockingQueue[] blockingQueueArray =
blockingQueueList.toArray(new BlockingQueue[blockingQueueList.size()]);
相關問題
- 1. 同步訪問ArrayList
- 2. 同步一個ArrayList
- 3. Arraylist同步問題
- 4. 同步ArrayList並等待
- 5. 同時爲多個用戶同步ArrayList
- 6. 同步的arrayList不兼容的類型
- 7. 矢量與ArrayList同步的示例
- 8. 需要與ArrayList同步的幫助
- 9. 同步一個傳遞的ArrayList
- 10. ArrayList,線程和同步 - 如何準確同步多個線程
- 11. Java:同步排列多個ArrayList或單個映射的ArrayList
- 12. 並行任務與同步arraylist
- 13. 通過兩個線程同步ArrayList
- 14. BlockingQueues和線程訪問順序
- 15. 生產者消費者變種java BlockingQueues
- 16. 如何顯示arraylist java的不同步性?
- 17. 在java中同步ArrayList的正確方法
- 18. 爲什麼我必須同步線程的ArrayList?
- 19. ArrayList vs Vector - 這是否說明了同步的區別?
- 20. Vector/ArrayList中的同步意味着什麼?
- 21. 爲什麼像ArrayList和HashMap這樣的類不同步?
- 22. 爲什麼ArrayList的同步包裝器不起作用?
- 23. Clonning ArrayList元素到相同的ArrayList
- 24. 同步不同步
- 25. 同步不同步
- 26. 使arraylist不同
- 27. 爲什麼異步線程不能同時修改ArrayList?
- 28. 我是否需要同步套接字ArrayList?
- 29. ArrayList ArrayList:檢查每個ArrayList具有相同數量的項目
- 30. 同步塊內同步塊