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