回答问题三步走
-
线程池是用来干嘛的?
-
线程池是怎么实现的,核心原理
-
线程池有什么好处,我们怎么更好的使用它
线程池是用来干嘛的?
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。
两个字:效率
线程池是怎么实现的,核心原理
真正核心
生产者-消费者模型
具体实现策略
BlockingQueue<Runnable> workQueue; //任务缓存队列,用来存放等待执行的任务
private final HashSet<Worker> workers = new HashSet<Worker>(); //用来存放工作集
private volatile ThreadFactory threadFactory; //线程工厂,用来创建线程
线程池有什么好处,我们怎么更好的使用它
根据不同的场景,配置不同的策略,cpu密集型 和io密集型
比如:
- 发送消息场景
- 批量解密文件