高并发-多线程-线程池

线程池中的阻塞队列选择_线程池队列选择_都让你们叫老了的博客-CSDN博客

队列

SynchronousQueue:没有容量,任务提交立即执行

ArrayBlockingQueue:指定容量,

LinkedBlockingQueue:无限容量,OOM

PriorityBlockingQueue:无限容量,按优先级排序

拒绝策略

直接丢弃

丢弃抛出异常

丢弃队头的任务:如果队列是PriorityBlockingQueue,会导致优先级最高的被丢弃,所以不建议这种拒绝策略和PriorityBlockingQueue一起使用

自定义拒绝策略:持久化

面试题

workqueue使用LinkedBlockingQueue,可能会创建临时线程吗?

不会,因为workqueue满了才会创建临时线程,但是LinkedBlockingQueue不会满

PriorityBlockingQueue有界还是无界?

无界,动态数组(扩容)

你可能感兴趣的:(高并发,多线程,线程池)