JAVEE初阶 多线程基础(九)

线程池

    • 一.线程池的概念
    • 二.标准库中的线程池参数解析
    • 三. 拒绝策略中的四个表示方法
    • 四. 实现线程池

一.线程池的概念

最开始,进程能够解决并发编程问题,但是由于频繁的创建销毁进程,使得消耗的CPU硬件资源特别多,后来引入了线程,但是线程的数量特别多,也会消耗较多的CPU硬件资源,那么就引入了
1.轻量级线程:纤程:是程序员在用户态调度,而不需要用到内核态.
2.线程池:直接创建好相应的线程,在线程使用完毕之后不直接释放线程,备下次使用

二.标准库中的线程池参数解析

在标准库中,我们用ThreadPoolExecutor来表示线程池.

在这里插入图片描述

第一个参数:corePoolSize:核心线程数
第二个参数:maximumPoolSize: 最大线程数
第三个参数:保持存活的时间 , 意思就是空闲时间超过这个阈值,就会被销毁掉
第四个参数: 任务队列,可以持有多个线程任务
第五个参数:通过工厂类,或者方法来封装new操作,就叫做工厂模式
JAVEE初阶 多线程基础(九)_第1张图片

第六个参数:拒绝策略

三. 拒绝策略中的四个表示方法

JAVEE初阶 多线程基础(九)_第2张图片

第一个 AbortPolicy : 继续添加任务, 直接抛出异常
第二个 CallerRunsPolicy : 新的任务由添加任务的线程负责执行
第三个: DiscardOldestPolicy : 丢弃最老的任务 执行新任务
第四个: DiscardPolicy : 丢弃最新的任务 但是老任务执行

四. 实现线程池

JAVEE初阶 多线程基础(九)_第3张图片

你可能感兴趣的:(java-ee)