我試圖模擬Java中的情況,其中許多生產者(至少2個)以固定速率訪問相同的LinkedBlockingQueue。他們製作,放置,然後重新開始。 我在想這是否會最終導致那些試圖在同一時間獲得隊列寫權限的生產者之間的競爭條件。是否已經設置了java.util.concurrent.BlockingQueue的實現來處理這樣的問題,還是應該手動創建互斥以避免這類問題?LinkedBlockingQueue與生產者 - 消費者場景中的許多生產者的線程安全
感謝您的關注。
我試圖模擬Java中的情況,其中許多生產者(至少2個)以固定速率訪問相同的LinkedBlockingQueue。他們製作,放置,然後重新開始。 我在想這是否會最終導致那些試圖在同一時間獲得隊列寫權限的生產者之間的競爭條件。是否已經設置了java.util.concurrent.BlockingQueue的實現來處理這樣的問題,還是應該手動創建互斥以避免這類問題?LinkedBlockingQueue與生產者 - 消費者場景中的許多生產者的線程安全
感謝您的關注。
所有BlockingQueues都是線程安全的。 – assylias
「請注意,BlockingQueue可以安全地與多個生產者和多個消費者一起使用。」來自http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html – Fildor