2020-10-31:java中LinkedTransferQueue和SynchronousQueue有什么區別?#福大大架構師每日一題#
uj5u.com熱心網友回復:
SynchronousQueue:執行緒A使用put將資料添加到佇列,如果沒有其他執行緒使用take去獲取資料,那么執行緒A阻塞,直到資料被其他執行緒獲取,同理 如果執行緒B從佇列中獲取資料為空,被阻塞,等待執行緒添加資料LinkedTransferQueue:LinkedTransferQueue使用put,tryTransfer和transfer可添加多條資料, LinkedTransferQueue具有SynchronousQueue的功能,但是LinkedTransferQueue的生產者不會阻塞
tryTransfer和transfer與put不同的是,tryTransfer和transfer可檢測是否有執行緒在等待獲取資料,檢測到則直接喚醒等待執行緒將資料給這個執行緒而不用放入佇列
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/197381.html
標籤:Java相關
上一篇:我電腦一直在自動ping一個ip
下一篇:電腦小白求助貼 改時區后亂碼問題
