27
2020
07

JDK封装的线程池

5f205e2a0f5cadccb25d9e4104ff0985.jpg

//ThreadPoolExecutor.java

public ThreadPoolExecutor(

    int corePoolSize, 

    int maximumPoolSize,

    long keepAliveTime,

    TimeUnit unit,

    BlockingQueue<Runnable> workQueue,

    ThreadFactory threadFactory,

    RejectedExecutionHandler handler) 

1

2

3

4

5

6

7

8

9

1 corePoolSize:核心线程数,线程池维持的线程数量

2 maximumPoolSize:最大的线程数,当阻塞队列不可再接受任务时且maximumPoolSize大于corePoolSize则会创建非核心线程来执行。但任务执行时,会被销毁

3 keepAliveTime:非核心线程在闲暇间的存活时间

4 TimeUnit:和keepAliveTime配合使用,表示keepAliveTime参数的时间单位

5 workQueue:任务的等待阻塞队列,正在执行的任务数超过corePoolSize时,加入该队列

6 threadFactory:线程的创建工厂

7 handler:拒绝策略,线程数达到了maximumPoolSize,还有任务提交则使用拒绝策略处理

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。