【Java并发】-- 线程池

本文详细探讨了Java线程池的使用原因、Executors提供的四种线程池类型及其应用场景,以及线程池的工作队列类型如ArrayBlockingQueue、LinkedBlockingQueue等。还介绍了线程池的拒绝策略、线程回收机制和核心线程的管理。此外,讨论了FutureTask在异步计算中的角色,以及Thread.sleep(0)的作用。最后,分析了当线程池队列满时的任务处理策略和线程池的中断机制。
摘要由CSDN通过智能技术生成

在这里插入图片描述


下面是关于线程池几个关键的问题分析:

1.为什么要使用线程池?

为了减少创建和销毁线程的次数, 让每个线程可以多次使用,可根据系统情况调整执行的线程数量,防止消耗过多内存。

2.Executors提供的四种线程池区别以及应用场景:

四种线程池分别是:newSingleThreadExecutor, newFixedThreadPool ,newCachedThreadPool,newScheduledThreadPool
newSingleThreadExecutor:创建一个单线程的线程池,这个线程池只有一个线程在工作,相当于单线程串行执行任务。适用:一个任务一个任务执行的场景
newFixedThreadPool:创建固定大小的线程池, 每次提交一个任务就创建一个线程,直到线程达到线程池的最大大小,线程池的大小一旦达到最大值就会保持不变。适用:执行长期的任务,性能好很多。
newCachedThreadPool:创建一个可缓存的线程池,如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲的线程, 当任务数增加时, 此线程池又可以智能添加新的线程来处理任务。此线程池不会对线程池大小做限制,线程池大小完全依赖操作系统或者JVM能够创建的最大线程大小。 适用:执

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值