什么是线程池?
简单说线程池就是存放线程的一个容器,跟对象池、链接池一样,是一种池化技术。用的时候从池子里去获取,用完之后放回池子中。
为什么要用线程池?
首先,在JVM中的线程跟OS中的线程是一对一的,这就意味着,在JVM中每新建或销毁一个线程都需要调用到OS的底层去创建或者销毁一个线程,这需要切换到内核态,而这个操作是需要消耗资源的。
所以每一个线程资源很宝贵,我们不应当轻易的去创建或销毁一个线程,所以使用线程池技术,将创建好的线程缓存起来,用的时候取出来,用完之后放回去。这样就规避了频繁的创建或者销毁线程。
- 线程的操作很消耗CPU资源,规避频繁创建和销毁线程
- 提升任务执行效率,不需要再为每一个任务去创建线程
- 便于统一管理线程,比如命名、拒绝策略、统一销毁等
网友评论