jdk11源码--SynchronousQueue源码分析

  1. 云栖社区>
  2. Java技术进阶>
  3. 博客>
  4. 正文

jdk11源码--SynchronousQueue源码分析

快乐崇拜007 2019-07-25 20:20:30 浏览287
展开阅读全文

概述

SynchronousQueue是一个同步阻塞队列,每一个 put操作都必须等待一个take操作。每一个take操作也必须等待一个put操作。
SynchronousQueue是没有容量的,无法存储元素节点信息,不能通过peek方法获取元素,peek方法会直接返回null。由于没有元素,所以不能被迭代,它的iterator方法会返回一个空的迭代器Collections.emptyIterator();

SynchronousQueue比较适合线程通信、传递信息、状态切换等应用场景,一个线程必须等待另一个线程传递某些信息给他才可以继续执行。

SynchronousQueue这个队列不常用,但是线程池中有用到该队列,所以也分析一下。
Executors.newCachedThreadPool()方法中使用到了SynchronousQue

网友评论

登录后评论
0/500
评论
快乐崇拜007
+ 关注
所属云栖号: Java技术进阶