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,否則無法繼續添加元素。