Java 阻塞队列 BlockingQueue
来源:互联网 发布:淘宝微淘如何发买家秀 编辑:程序博客网 时间:2024/04/30 16:45
阻塞队列:只是队列的拓展,传统队列当满的时候会抛出异常,而阻塞队列会一直等待,不会报错,当然,里面包含的方法如下:
add(e)
offer(e)
put(e)
offer(e, time, unit)
移除remove()
poll()
take()
poll(time, unit)
检查element()
peek()
不可用不可用我们发现添加方法有四种,我们这里分别演示一下效果,
add(e)
public class QueueDemo {public static void main(String[] args) throws InterruptedException {ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(20);for (int i = 0; i < 30; i++) {queue.add(i);// queue.offer(i);// queue.put(i);System.out.println("add number is --->" + i);}System.out.println("END");}}结果:
add number is --->0add number is --->1add number is --->2add number is --->3add number is --->4add number is --->5add number is --->6add number is --->7add number is --->8add number is --->9add number is --->10add number is --->11add number is --->12add number is --->13add number is --->14add number is --->15add number is --->16add number is --->17add number is --->18add number is --->19Exception in thread "main" java.lang.IllegalStateException: Queue fullat java.util.AbstractQueue.add(Unknown Source)at java.util.concurrent.ArrayBlockingQueue.add(Unknown Source)at com.yonyou.thread.QueueDemo.main(QueueDemo.java:9)
开辟了size为20的队列,但是添加进去30个Integer对象,则超过临界区大小,抛出异常。
queue.offer(i);
add number is --->0add number is --->1add number is --->2add number is --->3add number is --->4add number is --->5add number is --->6add number is --->7add number is --->8add number is --->9add number is --->10add number is --->11add number is --->12add number is --->13add number is --->14add number is --->15add number is --->16add number is --->17add number is --->18add number is --->19add number is --->20add number is --->21add number is --->22add number is --->23add number is --->24add number is --->25add number is --->26add number is --->27add number is --->28add number is --->29END
结果正常输出,该方法放弃大小限制,无限制容量扩展。
到达临界区 放不进去了。。。队列处于阻塞状态。。。等待有空闲空间。
queue.offer(i, 2000, TimeUnit.MILLISECONDS);
结果也不会受到size大小限制,会根据我们提前设置好的2s 依次入队 结果没有影响。
0 0
- Java 阻塞队列 BlockingQueue
- java 阻塞队列BlockingQueue
- Java : BlockingQueue 阻塞队列
- JAVA阻塞队列BlockingQueue
- Java多线程-阻塞队列BlockingQueue
- Java线程:阻塞队列BlockingQueue
- BlockingQueue 阻塞队列 -- Java 多线程
- java中的阻塞队列BlockingQueue
- java多线程-BlockingQueue(阻塞队列)
- Java多线程-BlockingQueue(阻塞队列)
- java中的阻塞队列BlockingQueue
- Java阻塞队列之BlockingQueue
- 理解java阻塞队列BlockingQueue
- Java中的阻塞队列BlockingQueue
- java的阻塞队列blockingqueue
- Java线程(篇外篇):阻塞队列BlockingQueue
- java阻塞队列BlockingQueue使用实例
- Java线程(七):阻塞队列BlockingQueue
- 互联网金融迈入深水区
- 动态网站一(哈佛大学公开课:构建动态网站1-3课)
- codeforce 6E 线段树+枚举
- h2 database
- CSS3/jQuery自定义弹出窗口
- Java 阻塞队列 BlockingQueue
- 外链与内链重要性pk
- diqMKTp写侵投驴夜访铺
- 给iOS开发者的Android开发建议
- POJ2305 Basic remains
- MaxinumSubarray(leetcode)
- cas入门之一 cas 简介
- s2sh向数据库插入数据,控制台有打印sql语句,数据库查询不到数据问题
- 二叉树中查找和为某一值的所有路径