zoukankan      html  css  js  c++  java
  • SynchronousQueue队列程序的执行结果分析

    public static void main(String[] args) throws Exception {
    /**
    * SynchronousQueue队列程序的执行结果分析
    * BlockingQueue--阻塞队列 在java.util.concurrent包 实现主要用于生产者-使用者队列
    * SynchronousQueue 类实现了 BlockingQueue 接口。
    * 直接提交的队列:SynchronousQueue队列
    * SynchronousQueue没有容量,是无缓冲等待队列,是一个不存储元素的阻塞队列,会直接将任务交给消费者,必须等队列中的添加元素被消费后才能继续添加新的元素。
    * 当线程池进行入队offer操作的时候,本身是无容量的,所以直接返回false,并没有保存下来,而是直接提交给线程来进行执行,如果没有空余的线程则执行拒绝策略
    * queue.offer -- 向队列中添加一个元素,调用 offer() 成功返回true,如果此队列已满,则返回 false,如果当前没有可用空间,则返回false
    * queue.take() -- 获取并移除此队列头元素,若没有元素则一直阻塞。
    */
    BlockingQueue<Integer> queue = new SynchronousQueue<>();
    System.out.println("队列长度为:"+queue.size());//队列长度为:0
    System.out.println(queue.offer(1) + " ");//false
    System.out.println(queue.offer(2) + " ");//false
    System.out.println(queue.offer(3) + " ");//false
    System.out.println("队列长度为:"+queue.size());//队列长度为:0
    System.out.println(queue.take() + " ");//阻塞
    }

  • 相关阅读:
    每日问题汇总:2016-3-28
    DataList、Repeater、GridView中的Checkbox取值问题
    长数字字符串逗号分隔
    文字环绕图片效果
    js图片放大镜 可动态更换图片
    动态页面生成静态页
    SQL按汉语拼音首字母排序
    JS软键盘代码
    JS判断RadioButtonList是否有选中项
    简单获取两个时间的时间差函数
  • 原文地址:https://www.cnblogs.com/wueryuan/p/11413083.html
Copyright © 2011-2022 走看看