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() + " ");//阻塞
    }

  • 相关阅读:
    2.12 使用@DataProvider
    2.11 webdriver中使用 FileUtils ()
    Xcode8 添加PCH文件
    The app icon set "AppIcon" has an unassigned child告警
    Launch Image
    iOS App图标和启动画面尺寸
    iPhone屏幕尺寸、分辨率及适配
    Xcode下载失败 使用已购项目页面再试一次
    could not find developer disk image
    NSDate与 NSString 、long long类型的相互转化
  • 原文地址:https://www.cnblogs.com/wueryuan/p/11413083.html
Copyright © 2011-2022 走看看