綫程池構造函數

把程提前系統中申請好放在一個地方,需要用時直接這裹取。

ThreadPoolExcutorThreadFactory threadFactory. RejectedExecutionHandler handler)ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, Long keepALiveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue,Creates a new ThreadPootExecutor with the given initial parameters.

这个类的构造方法的参数的含义,也是“经典面试题”

1. int corePoolSize, int maximumPoolSize,

核心线程数,最大线程数。

此线程池,可以支持“线程扩容”某个线程池。

初始情况下,可能有M个线程,实际使用中,发现M不太够用,就会自动增加M的个数。

在Java标准库的线程池中,就把里面的线程,分成两类

1)核心线程(也可以理解成最少有多少个线程)

2)非核心线程(线程扩容的过程中,新增的)

cpu上的核心数目是有限的。

核心线程数+非核心线程数的最大值為最大线程数核心线程,会始终存在于线程池内部。

非核心线程,繁忙的时候,被创建出来,不繁忙了,空闲了,就会把这些线程真正释放掉

2. long keepAliveTime,TimeUnit uHit,

非核心线程会在线程空闲的时候被销毁。 非核心线程,允许摸鱼的最大时间

3. BlockingQueu&<Runnablewo rkQueue>

工作队列线程池的工作过程典型的“生产者消费者模型.

程序员使用的时候,通过形如“submit”这样的方法,把要执行的任务设定到线程池里。

线程池内部的工作线程,负责执行这些任务。

Runnable接口本身的含义就是一段可以执行的任务此处的队列,让我们自行指定

1)队列的容量capacity  2)队列的类型

4.  ThreadFactory threadFactory.

线程工厂就是Thread类的工厂类通过这个类,完成Thread的实例创建和初始化操作。

“工厂”指的是“工厂设计模式”也是一种常见的设计模式。

此处的ThreadFactory就可以针对线程池里的线程工厂设计模式是一种在创建类的实例时使用的设计模式。

Java标准库给出了四种不同的拒绝策路

Modifier and TypeClass and Descriptionstatic classThreadPooLExecuter.AbertPalicyA bsmller for rejecled tasks that thruws a RejectedExecutLonExceptiLon,添加任务的时候,直接抛出异常

static classThreadPooLExecuter.CalLernsPelicyA handler for rejocted tasks that runs the rejeetod task diroctly in the calling线程池拒绝了执行,由调用submit的线程负责执行

thread of the execute method, unless theThredPoolExecwter.DiscardLdestPoticy。A bandler for rejocted tesks that discards tbe eldest unhagdled request and tben retries execute, unless the executor isstatic class把任务队列中,最老的任务跟掉,然后执行新增加的任务

ThreadPootExecuter.DiscardPoLicyA handler for rejected tasks that silently discands the rejected task.把任务队列中,最新的任务踢掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值