【并发编程篇21】线程池中有那些常见的阻塞队列

58 阅读1分钟

workQueue 当没有空闲的核心线程时,新任务就会加入到此队列中排队,队列满了就会创建救急线程执行任务

  • ArrayBlockingQueue:基于数组结构的有界阻塞队列,FIFO
  • LinkedBlockingQueue:基于链表结构的有界阻塞队列,FIFO
  • DelayedWorkQueue:一个优先级队列,保证每次出队的任务都是当前队列中执行时间最靠前的(任务可以设置一个时间,每次出队列都是时间最长的)
  • SynchronousQueue:不存储元素的阻塞队列,每个插入操作必须等待一个移除操作

image.png

LinkedBlockingQueue 构造函数:

image.png

image.png

我们实际项目中使用LinkedBlockingQueue比较多