- 它是基于数组阻塞队列实现,在ArrayBlockingQueue内部,维护了一个定长数组,以便缓存队列中的数据对象,其内部没有实现读写分离,也就意味着生产和消费不能完全并行,长度也是需要定义的,可以指定先进先出或者先进后出,也叫有界队列。
- public class UseQueue {
- public static void main(String[] args) throws Exception {
- ArrayBlockingQueue<String> array = new ArrayBlockingQueue<String>(5);
- array.put("a");
- array.put("b");
- array.add("c");
- array.add("d");
- array.add("e");
- array.add("f");
- //System.out.println(array.offer("a", 3, TimeUnit.SECONDS));
- }
- }
- 输出结果:满了
- Exception in thread "main" java.lang.IllegalStateException: Queue full
- at java.util.AbstractQueue.add(AbstractQueue.java:98)
- at java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:312)
- at com.bjsxt.base.coll013.UseQueue.main(UseQueue.java:24)
11.ArrayBlockingQueue
最新推荐文章于 2022-01-20 00:22:50 发布