线程池概念
简单理解,它就是一个管理线程的池子。
- 它帮我们管理线程,避免增加创建线程和销毁线程的资源损耗。因为线程其实也是一个对象,创建一个对象,需要经过类加载过程,销毁一个对象,需要走GC垃圾回收流程,都是需要资源开销的。
- 提高响应速度。 如果任务到达了,相对于从线程池拿线程,重新去创建一条线程执行,速度肯定慢很多。
- 重复利用。 线程用完,再放回池子,可以达到重复利用的效果,节省资源。
简单线程池的五个要素
1.任务队列--调度
2.拒绝策略--(抛出异常、直接丢弃、阻塞、临时队列)性能保护
3.init(min)
4.active
5.max
比如定时任务Quartz(免费版)/Control-M(商业版)就运用到线程池
线程池里的线程不能一味地增加,有可能使虚拟机栈崩溃