2025年阻塞队列源码(阻塞队列实现)

阻塞队列源码(阻塞队列实现)ArrayBlockin 一个由数组结构组成的有界阻塞队列 LinkedBlocki 一个由链表结构组成的有界阻塞队列 SynchronousQ 一个不存储元素的阻塞队列 PriorityBloc 一个支持优先级排序的无界阻塞队列 方法 抛出异常 返回特殊值 一直阻塞 超时退出 插入方法 add offer put

大家好,我是讯享网,很高兴认识大家。



  • ArrayBlockingQueue: 一个由数组结构组成的有界阻塞队列。
  • LinkedBlockingQueue: 一个由链表结构组成的有界阻塞队列。
  • SynchronousQueue: 一个不存储元素的阻塞队列。
  • PriorityBlockingQueue: 一个支持优先级排序的无界阻塞队列。
方法 抛出异常 返回特殊值 一直阻塞 超时退出 插入方法 add offer put offer 删除方法 remove poll take poll

带着疑问去使用,可能会更好:


讯享网

  • 队列空着的时候去拿数据会怎么样?
  • 队列满着的时候去存数据会怎么样?
  • 前面的方法,能否会出现阻塞或者非阻塞现象?

队列满了,存数据会怎么样?

 
  
讯享网

image
说明:队列满了,那么调用put方法,会将当前线程阻塞。

队列空了,取数据会怎么样?

讯享网

说明:队列空了,那么调用take方法,会将当前线程阻塞。
依次测试结果:
poll方法,在队列空了的时候,返回false,取出的对象为空,当前线程非阻塞
offer方法,在队列满了的时候,返回false,当前线程非阻塞。







ArrayBlockingQueue构造器初始化参数

 

put阻塞存入数据方法

代码
讯享网

take阻塞拿取数据方法

代码
 
   

< JDK 1.8.0_161 源码 >


小讯
上一篇 2025-06-06 10:12
下一篇 2025-06-15 21:28

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/139801.html