併發佇列ConcurrentLinkedQueue和阻塞佇列LinkedBlockingQueue使用場景總結
當許多執行緒共享訪問一個公共 collection 時,ConcurrentLinkedQueue 是一個恰當的選擇。
LinkedBlockingQueue 多用於任務佇列
ConcurrentLinkedQueue 多用於訊息佇列
多個生產者,對於LBQ效能還算可以接受;但是多個消費者就不行了mainLoop需要一個timeout的機制,否則空轉,cpu會飆升的。LBQ正好提供了timeout的介面,更方便使用
如果CLQ,那麼我需要收到處理sleep
單生產者,單消費者 用 LinkedBlockingqueue 多生產者,單消費者 用 LinkedBlockingqueue 單生產者 ,多消費者 用 ConcurrentLinkedQueue 多生產者 ,多消費者 用 ConcurrentLinkedQueue