- ArrayBlockingQueue: 一个由数组结构组成的有界阻塞队列。
- LinkedBlockingQueue: 一个由链表结构组成的有界阻塞队列。
- SynchronousQueue: 一个不存储元素的阻塞队列。
- PriorityBlockingQueue: 一个支持优先级排序的无界阻塞队列。
带着疑问去使用,可能会更好:
- 队列空着的时候去拿数据会怎么样?
- 队列满着的时候去存数据会怎么样?
- 前面的方法,能否会出现阻塞或者非阻塞现象?
队列满了,存数据会怎么样?

说明:队列满了,那么调用put方法,会将当前线程阻塞。
队列空了,取数据会怎么样?
说明:队列空了,那么调用take方法,会将当前线程阻塞。
依次测试结果:
poll方法,在队列空了的时候,返回false,取出的对象为空,当前线程非阻塞。
offer方法,在队列满了的时候,返回false,当前线程非阻塞。
ArrayBlockingQueue构造器初始化参数
put阻塞存入数据方法
代码
take阻塞拿取数据方法
代码
< JDK 1.8.0_161 源码 >
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/50800.html