美文网首页
线程池的阻塞队列

线程池的阻塞队列

作者: 菜鸟养成记 | 来源:发表于2021-08-12 09:40 被阅读0次

1、线程池中阻塞队列的作用?
一般的队列只能保证作为一个有限长度的缓冲区,如果超出了缓冲长度,就无法保留当前的任务了,阻塞队列通过阻塞可以保留住当前想要继续入队的任务。

阻塞队列可以保证任务队列中没有任务时阻塞获取任务的线程,使得线程进入wait状态,释放cpu资源。

阻塞队列自带阻塞和唤醒功能,不需要额外处理,无任务执行时,线程池利用阻塞队列的take方法挂起,从而维持核心线程的存活,不至于一直占用cpu资源

2、为什么先添加队列,而不是先创建最大线程?
在创建新线程的时候,是要获取全局锁的,这个时候其他的就得阻塞,影响了整体效率。超过创建的最大线程数就会被线程池拒绝。

相关文章

  • 线程池

    [TOC] 线程池 1. 并发队列:阻塞队列和非阻塞队列 区别如下: 入队: 非阻塞队列:当队列中满了的时候,放入...

  • 线程池

    线程池执行过程 线程池生命周期 线程池分类 阻塞队列 拒绝策略 - ThreadPoolExecutor.Abor...

  • Executors线程池

    newCacheThreadPool(缓存线程池):阻塞队列为SynchronousQueue,核心线程数0,最大...

  • 阻塞队列

    BlockingQueue线程池的数据结构是阻塞队列BlockingQueue。(在多线程领域:所谓阻塞,在某些情...

  • 线程池

    1、为什么要使用线程池2、线程池的工作原理3、线程池参数4、阻塞队列5、饱和策略6、向线程池提交任务7、线程池的状...

  • JAVA中常见的阻塞队列详解

    在之前的线程池的介绍中我们看到了很多阻塞队列,这篇文章我们主要来说说阻塞队列的事。 阻塞队列也就是 Blockin...

  • Day 38 并发线程池底层原理详解与源码分析

    任务先放到核心线程池,放不下了再放到阻塞队列,还是放不下就放到最大线程池中. 重点关注,阻塞队列,回收时间实现,拒...

  • 线程池的阻塞队列

    1、线程池中阻塞队列的作用?一般的队列只能保证作为一个有限长度的缓冲区,如果超出了缓冲长度,就无法保留当前的任务了...

  • 阻塞队列和线程池原理

    阻塞队列和线程池原理 阻塞队列 队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除...

  • Java线程池的工作原理,好处和注意事项

    线程池的工作原理 、一个线程池管理了一组工作线程, 同时它还包括了一个用于放置等待执行任务的任务队列(阻塞队列) ...

网友评论

      本文标题:线程池的阻塞队列

      本文链接:https://www.haomeiwen.com/subject/mbckbltx.html