问题描述: 在我们的日常生活中,如果我们现在要浏览一个网页或者频繁的打开一个执行时间较短的任务, 如果每次调用都创建一个线程,使用结束后就立即释放,那么这样的开销对于操作系统来说有点太过浪费了。
而线程池的出现就可以很好地解决这样的问题。 线程池:
1.特点:
1>经典生产者消费者模型。
2>线程池中有若干等待的线程。
3>线程池中的线程用于执行大量的相对短暂的任务。
2.功能描述:
当任务增加时,可以动态增加线程池中线程的个数,
当任务执行完成后,可以动态的减少线程池中线程的个数。
生产者线程向任务队列中添加任务,任务队列中有任务,如果有等待线程就唤醒并执行任务
如果线程池中没有等待线程并且没有达到上限,就添加新的线程到线程池
3.线程池的创建场景:
1>计算密集型任务: 线程池线程个数 = CPU个数
2>I/O密集型任务:线程池线程个数 > CPU个数