- ArrayBlockingQueue: 一个由数组结构组成的有界阻塞队列。
- LinkedBlockingQueue: 一个由链表结构组成的有界阻塞队列。
- SynchronousQueue: 一个不存储元素的阻塞队列。
- PriorityBlockingQueue: 一个支持优先级排序的无界阻塞队列。
带着疑问去使用,可能会更好:
- 队列空着的时候去拿数据会怎么样?
- 队列满着的时候去存数据会怎么样?
- 前面的方法,能否会出现阻塞或者非阻塞现象?
队列满了,存数据会怎么样?
说明:队列满了,那么调用put方法,会将当前线程阻塞。
队列空了,取数据会怎么样?
说明:队列空了,那么调用take方法,会将当前线程阻塞。
依次测试结果:
poll方法,在队列空了的时候,返回false,取出的对象为空,当前线程非阻塞。
offer方法,在队列满了的时候,返回false,当前线程非阻塞。
ArrayBlockingQueue构造器初始化参数
put阻塞存入数据方法
代码
take阻塞拿取数据方法
代码
< JDK 1.8.0_161 源码 >
到此这篇阻塞队列源码(阻塞队列实现)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/61104.html