java BlockingQueue:线程池fixed, single, scheduled, cached对应的队列
时间: 2023-05-27 09:02:44 浏览: 135
线程----BlockingQueue
线程池的队列一般有两种:
1. 有界队列:限制队列的容量,当队列已满时提交的任务将被阻塞。
2. 无界队列:队列容量无限制,可以一直向队列中添加任务,直到程序内存耗尽为止。
不同类型的线程池使用的默认队列也不同:
1. FixedThreadPool:使用的是无界队列LinkedBlockingQueue。
2. SingleThreadExecutor:使用的是无界队列LinkedBlockingQueue。
3. ScheduledThreadPoolExecutor:使用的是DelayedWorkQueue,是一个按照任务延迟时间排序的无界队列。
4. CachedThreadPool:使用的是SynchronousQueue,是一个没有容量的阻塞队列,每个插入操作必须等待另一个线程进行相应的删除操作,否则插入操作将一直被阻塞。
阅读全文