线程的创建和销毁是比较消耗资源的,使用线程池主要是为了资源的复用。
线程池由七个参数构成:
-
核心线程数
-
最大线程数
-
非核心线程存活时间
-
时间单位
-
阻塞队列
-
线程工厂
-
拒绝策略
线程池的执行流程:
-
有任务需要执行,核心线程没满进入核心线程执行任务。
-
核心线程已经满了还有新的任务进来这个任务就进入阻塞队列里面,在队列里面等待执行。
-
如果等待的时间过长就会被jvm收回
-
-
核心线程和阻塞队列都满了还有新的任务要进来就进入最大线程数里面,再开辟新的线程执行任务。
-
如果线程都再执行还有新的任务进来就执行拒绝策略