转载

JAVA-线程池浅析

  1. 核心线程数 :线程长时间维持的线程数量,默认情况下会在新建线程池后根据线程任务来初始化线程,到达核心线程数位置,核心线程不会被回收。开发者可以使用prestartCoreThread发放跳过初始化线程的过程,直接初始化核心线程。当核心线程都在工作,且 workQueue 满了的情况下会创建新的线程来执行任务。

  2. 最大线程数 :线程池允许最多同时进行处理任务的最大线程个数 = 核心线程数 + 额外线程,额外线程是会被回收的,具体的回收策略参考后面讲解的参数keepAliveTime 、unit。

  3. keepAliveTime、unit:保持时间,额外线程的过期时间

  4. workQueue:线程任务队列,一般会使用BlockingQueue

  5. threadFactory:线程工厂类,通常我们会自顶一个threadFactory设置线程的名称,这样我们就可以知道线程是由哪个工厂类创建的,可以快速定位

  6. handler:拒绝策略,在队列满了之后,新的任务请求进行的处理策略,可以自己实现保存在mysql里面或者其他的操作。

原文  https://juejin.im/post/5cced032f265da039955eee7
正文到此结束
Loading...