其他几种BlockingQueue

其他两种阻塞式容器BlockingQueue


  1. PriorityBlockingQueue是一种基于优先级的阻塞队列,(优先级的判断通过构造函数传入Compator对象来决定,也就是说传入队列的对象必须实现Comparable接口)在实现PriorityBlockingQueue时,内部控制线程同步的锁采用的是公平锁。然后这个容器在添加对象的时候add()是不会里面的对象进行优先级排序的,只有在取对象take()的时候才会将容器的内部的对象进行优先级排序。
  2. 然后上篇文章说的SynchronousQueue()容器并不是不能够add()对象,而是必须有消费者的请求发送过来也就是要有take()请求的时候才能进行add(),这时就可以获取到add()的对象,这个容器内部没有缓冲队列,只有消费者有请求时生产者才可以add()对象,这时相当于消费者和生产者之间进行了点对点的传输。
  3. DelayQueue是一种带有延迟时间的Queue,其中的元素只有当其指定的延迟时间到了,才能够从队列中获取到该元素。DelayQueue中的元素必须实现Delayed接口,(getDelay(TimeUnit unit)(这个是用来判断是否到了截止时间)和compareTo()(这个是用来相互排序比较用的)方法)DelayQueue是一个没有大小限制的队列,应用场景很多,比如对缓存超时的数据进行移除,任务超时处理、空闲连接的关闭等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值