Java 阻塞和同步隊列


1. 隊列和棧

  隊列:就像管道,排隊在,先進先出(FIFO);

  棧:就像桶,先進后出。

2. 阻塞隊列(BlockingQueue)

  A. 阻塞隊列:由於隊列有容量限制,故當隊列元素已滿時,新增加的元素必須等待,或當隊列元素取出已空時,也會阻塞等待新的元素;

  B. ArrayBlockingQueue API的使用

方法 拋出異常 返回特殊值 一直阻塞 超時退出
插入 存 add -> java.lang.IllegalStateException offer -> false put offer(e, time)
移除 取 remove - > java.util.NoSuchElementException poll -> null take poll(e, time)
檢查隊首 element peek -> null - -

3. 同步隊列(SynchronousQueue)

  A. 同步隊列:不存儲元素,隊列是空的,即每一個put操作,必須等待一個take,否則無法繼續添加元素。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM