当前位置:网站首页 > 编程语言 > 正文

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



  • 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 源码 >

到此这篇阻塞队列源码(阻塞队列实现)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • linux中yum无法使用(linux中yum无法使用显示86)2024-12-07 23:00:05
  • 论文右上角小圈1怎么打(论文右上角小标怎样输入)2024-12-07 23:00:05
  • 安卓运行xp虚拟机(安卓虚拟windowsxp)2024-12-07 23:00:05
  • 网易云怎么打开位置定位(网易云怎么打开位置定位功能)2024-12-07 23:00:05
  • 进程控制块内容(进程控制块的含义)2024-12-07 23:00:05
  • yum命令用法(yum相关命令的主要功能是什么)2024-12-07 23:00:05
  • linux 目录重命名(linux目录改名命令)2024-12-07 23:00:05
  • keil 破解到期(keil破解到2032年)2024-12-07 23:00:05
  • ewma模型(ewma模型怎么读)2024-12-07 23:00:05
  • 25q32jvsiq是什么芯片(25q80bs1g是什么芯片)2024-12-07 23:00:05
  • 全屏图片