首页 > 编程知识 正文

线程池的处理流程,四种线程池所使用的队列

时间:2023-05-04 11:14:51 阅读:42492 作者:807

1. CachedThreadPool线程池(可向下转换为ThreadPoolExecutor )1.1 线程池核心线程数是0,说明线程空闲时,会被自动回收。

1.2 任务队列只能有一个任务,而且最大线程数是整数最大值。所以有任务就会创建线程处理,这就要求任务执行时间要短,不然会创建很多线程

2 .固定thread pool线程池(可向下转换为ThreadPoolExecutor )2.1 核心线程数和最大线程数相等,不存在线程回收

3. SingleThreadExecutor线程池3.1 只能创建一个线程的SingleThreadExecutor线程池和线程的区别

3.2 线程池中唯一的线程发生异常结束,线程池会再创建一个线程

4. WorkStealingPool线程池(可向下转换为ForkJoinPool )4.1 本质是ForkJoinPool

4.2 最大的特点之一:线程可以悬挂当前任务,从任务队列执行子任务

4.3 最大的特点之二:从自己队列按LIFO后入先出方式拿取任务,然后会从其它线程的工作队列按FIFO先入先出方式"窃取"任务

5. ScheduleThreadPoolExecutor线程池5.1 任务执行时间很长时,不能保证周期性执行

5.2 不支持回调

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。