240 发简信
IP属地:吉林
  • "其中线程线程1-4先占满了核心线程和最大线程数量,然后4、5线程进入等待队列,7-10线程被直接忽略拒绝执行,等1-4线程中有线程执行完后通知4、5线程继续执行。"
    这一段用词不太明确,容易误导新手,事实上应该是:
    1,由于线程预启动,首先创建了1,2号线程,然后task1,task2被执行;
    2,但任务提交没有结束,此时任务task3,task6到达发现核心线程已经满了,进入等待队列;
    3,等待队列满后创建任务线程3,4执行任务task3,task6,同时task4,task5进入队列;
    4,此时创建线程数(4)等于最大线程数,且队列已满,所以7,8,9,10任务被拒绝;
    5,任务执行完毕后回头来执行task4,task5,队列清空。

    线程池之ThreadPoolExecutor使用

    ThreadPoolExecutor提供了四个构造方法: 我们以最后一个构造方法(参数最多的那个),对其参数进行解释: 如果对这些参数作用有疑惑的请看 ThreadPoolE...

  • 120
    一张图读懂非公平锁与公平锁

    在Java并发编程中,公平锁与非公平锁是很常见的概念,ReentrantLock、ReadWriteLock默认都是非公平模式,非公平锁的效率为何高于公平锁呢?究竟公平与非公...

  • 120
    深入分析java线程池的实现原理

    简书 占小狼[//www.greatytc.com/users/90ab66c248e6/latest_articles] 转载请注明原创出处,谢谢! 2019/...