zoukankan      html  css  js  c++  java
  • 四组API

    方式              抛出异常     有返回值,不抛出异常      阻塞,等待     超时等待         
    添加 add offet() put()  offer(,,)
    移除   remove poll() take() poll(,)
    检测对首元素 element peek .. ..

    第一

     1 //抛出异常
     2     public static void Test1(){
     3         ArrayBlockingQueue blockingQueue = new ArrayBlockingQueue<>(3);
     4 
     5         System.out.println(blockingQueue.add("A"));
     6         System.out.println(blockingQueue.add("B"));
     7         System.out.println(blockingQueue.add("C"));
     8         //System.out.println(blockingQueue.add("A"));
     9         // java.lang.IllegalStateException: Queue full 队列已满
    10         System.out.println("===");
    11 
    12         System.out.println(blockingQueue.element());//查看队列个元素首是谁
    13 
    14         System.out.println(blockingQueue.remove());
    15         System.out.println(blockingQueue.remove());
    16         System.out.println(blockingQueue.remove());
    17         //java.util.NoSuchElementException  这里面没有元素
    18         //System.out.println(blockingQueue.remove());
    19 
    20     }

    第二

     1  //有返回值,没有异常
     2     public static void Test2(){
     3         //队列大小
     4         ArrayBlockingQueue blockingQueue = new ArrayBlockingQueue<>(3);
     5         System.out.println(blockingQueue.offer("a"));
     6         System.out.println(blockingQueue.offer("b"));
     7         System.out.println(blockingQueue.offer("c"));
     8         //System.out.println(blockingQueue.offer("c"));//返回false  不会抛出异常
     9 
    10         System.out.println(blockingQueue.peek());
    11 
    12         System.out.println("======================");
    13         System.out.println(blockingQueue.poll());
    14         System.out.println(blockingQueue.poll());
    15         System.out.println(blockingQueue.poll());
    16         //System.out.println(blockingQueue.poll());//返回一个null  不会抛出异常
    17     }

    第三

     1  //等待,阻塞(一直)
     2     public static void Test3() throws InterruptedException {
     3         //队列大小
     4         ArrayBlockingQueue blockingQueue = new ArrayBlockingQueue<>(3);
     5         blockingQueue.put("a");
     6         blockingQueue.put("b");
     7         blockingQueue.put("c");
     8         //blockingQueue.put("d");//队列 没有位置,程序就会一直等待  下面的程序不会执行
     9         //System.out.println(blockingQueue.offer("c"));//返回false  不会抛出异常
    10 
    11         System.out.println(blockingQueue.peek());
    12 
    13         System.out.println("======================");
    14         System.out.println(blockingQueue.take());
    15         System.out.println(blockingQueue.take());
    16         System.out.println(blockingQueue.take());
    17         System.out.println(blockingQueue.take());//找不到元素,会一直等待,一直阻塞状态
    18     }

    第四

     1  //等待,阻塞(等待超时)
     2     public static void Test4() throws InterruptedException {
     3         //队列大小
     4         ArrayBlockingQueue blockingQueue = new ArrayBlockingQueue<>(3);
     5         blockingQueue.offer("a");
     6         blockingQueue.offer("b");
     7         blockingQueue.offer("c");
     8         blockingQueue.offer("b",2, TimeUnit.SECONDS);
     9         //       blockingQueue.offer("b",2, TimeUnit.SECONDS);//等待超過兩秒就退出
    10 
    11         System.out.println("===============");
    12 
    13         System.out.println(blockingQueue.poll());
    14         System.out.println(blockingQueue.poll());
    15         System.out.println(blockingQueue.poll());
    16         System.out.println(blockingQueue.poll(3, TimeUnit.SECONDS));
    17         //blockingQueue.poll(3, TimeUnit.SECONDS) 等待超過三秒就推出
    18     }
  • 相关阅读:
    计算机视觉的常用测试数据集和源码
    Demo:基于 Flink SQL 构建流式应用
    102万行代码,1270 个问题,Flink 新版发布了什么?
    bilibili 实时平台的架构与实践
    阿里云2020上云采购季来啦!降本增效1亿补贴!
    阿里云助力宁波市教育局“甬上云校”停课不停学
    Quick BI新版本功能解读系列之-V3.5
    百万TPS高吞吐、秒级低延迟,阿里​搜索离线平台如何实现?
    五分钟学会使用 go modules(含在家办公使用技巧)
    OAM 深入解读:OAM 为云原生应用带来哪些价值?
  • 原文地址:https://www.cnblogs.com/rzkwz/p/12698946.html
Copyright © 2011-2022 走看看