同步队列

package Juc;import java.util.concurrent.BlockingQueue;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.TimeUnit;
/*** 同步队列SynchronousQueue一次只允许一个元素,消费后才插入下个元素进入队列**/
public class SynchronousQueueDemo {public static void main(String[] args) {BlockingQueue<String> bq = new SynchronousQueue<>();new Thread(() -> {try {System.out.println(Thread.currentThread().getName()+"\t put 1");bq.put("1");System.out.println(Thread.currentThread().getName()+"\t put 2");bq.put("2");System.out.println(Thread.currentThread().getName()+"\t put 3");bq.put("3");} catch (Exception e) {e.printStackTrace();}},"aa").start();new Thread(() -> {try {try{TimeUnit.SECONDS.sleep(5);}catch (Exception e){e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"\t "+bq.take());try{TimeUnit.SECONDS.sleep(5);}catch (Exception e){e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"\t "+bq.take());try{TimeUnit.SECONDS.sleep(5);}catch (Exception e){e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"\t "+bq.take());} catch (Exception e) {e.printStackTrace();}},"bb").start();}}

SynchronousQueue相关推荐

  1. java 并发队列_JAVA并发编程:阻塞队列BlockingQueue之SynchronousQueue

    前面在讲解Executors工厂创建可缓存线程的线程池(newCachedThreadPool)的时候有提到过SynchronousQueue队列,该线程池使用 SynchronousQueue 作为 ...

  2. java并发之SynchronousQueue实现原理

    前言 SynchronousQueue是一个比较特别的队列,由于在线程池方面有所应用,为了更好的理解线程池的实现原理,笔者花了些时间学习了一下该队列源码(JDK1.8),此队列源码中充斥着大量的CAS ...

  3. SynchronousQueue队列

    SynchronousQueue 一种没有缓存的队列 生产者产生的数据 直接会被消费者获取,并消费 package com.bjsxt.base.coll013;import java.util.Ar ...

  4. synchronousqueue场景_java并发队列之SynchronousQueue

    特点:阻塞队列,此队列有点特殊,没有存储空间,也就是不存储数据.每一个put操作必须等待一个take操作,反之,每一个take操作也必须等待一个put操作.如果put进去一个数据,那么必须等待这条数据 ...

  5. [源码]解析 SynchronousQueue 上界,下界.. 数据保存和数据传递. 堵塞队列. 有无频繁await?...

    简析SynchronousQueue.LinkedBlockingQueue(两个locker,更快),ArrayBlockingQueue(一个locker,读写都竞争) 三者都是blockingQ ...

  6. SynchronousQueue详解

    文章目录 简介 举例说明 总结 SynchronousQueue详解 简介 SynchronousQueue是BlockingQueue的一种,所以SynchronousQueue是线程安全的.Syn ...

  7. java多线程之:SynchronousQueue队列

    转载自  java多线程之:SynchronousQueue队列 SynchronousQueue是这样一种阻塞队列,其中每个 put 必须等待一个 take,反之亦然.同步队列没有任何内部容量,甚至 ...

  8. Java中的SynchronousQueue示例–生产者使用者解决方案

    SynchronousQueue是BlockingQueue的一种特殊类型,其中每个插入操作必须等待另一个线程进行相应的删除操作,反之亦然. 当您在SynchronousQueue上调用put()方法 ...

  9. 使用SynchronousQueue实现生产者/消费者

    Java提供了许多用于并发支持的有用类中,有一个我想谈一谈: SynchronousQueue . 特别是,我想通过使用方便的SynchronousQueue作为交换机制来完成Producer / C ...

  10. 线程池三种队列使用,SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue

    使用方法: private static ExecutorService cachedThreadPool = new ThreadPoolExecutor(4, Runtime.getRuntime ...

最新文章

  1. 【组队学习】【32期】SQL编程语言
  2. 的union_C语言“隐秘的角落”——union没那么简单
  3. jq关于对象类型的判断
  4. 数据结构与算法--再谈递归与循环(斐波那契数列)
  5. 在elementUI中使用 el-autocomplete 实现远程搜索的下拉框
  6. Ubuntu下部署zabbix 开源监控系统
  7. html 获取mac地址,Javascript获取Mac地址
  8. redis java eval_【宇润日常疯测-002】Redis-eval() 到底好在哪
  9. au人声处理_如何使用AU软件为视频降噪?
  10. 树的最大独立集详解(C++)
  11. tushare下载股票历史数据
  12. oppo强制升级android版本,OPPO R17升级更新安卓9.0固件rom刷机包:正式版本-C.10
  13. 微信小程序开发需要哪些技术?
  14. 神威太湖之光之超级计算机,中国研发的“神威·太湖之光”,超级计算机能给我们带来什么?...
  15. php模板如何使用,PHP自定义模板标签详细解答,让你轻松驾驭
  16. 大疆创新2019校招
  17. HTML5七夕情人节表白网页制作 __浪漫空中散落的花瓣3D相册__ HTML+CSS+JavaScript
  18. 智能设备系统的测试分析——语音识别系统和面部识别系统
  19. webdav使用mysql_WebDAV Client
  20. 零基础CSS入门教程(16)–内边距

热门文章

  1. QGhappy小组第三次作业第二天完成情况
  2. 设计模式之Flyweight模式(笔记)
  3. 对于一万条数据量使用Oracle游标,存储过程,一般查询的速度的对比
  4. 软件推荐:Microsoft To-Do
  5. IDEA快捷键整理(最详细的)
  6. JavaScript中的this详解
  7. 在Entity Framework中使用事务
  8. 怎样才能算是在技术上活跃的小公司
  9. 跟我一起数据挖掘(23)——C4.5
  10. ANT HelloWorld