浅析线程池
线程池为线程的容器,通过减少线程的创建和销毁时间来提高线程的利用率,但是不能控制线程池中线程的开始,挂起和中止。
浅析线程池的实现:
1.当线程池被创建时候,会创建于线程池相同的下限的空闲线程;
2.当我们在线程池中加入任务时,线程池会安排当前空闲的线程逐一接手任务;
3.随着任务的增加,某一时刻当任务序列大于现在的线程下限时,线程池并不会马上创建一个新的线程,而是等待一定的时间后,看当前是否会有线程完成成为空闲线程来接手这个请求;
4.当任务数量超过下限时,每增加一个线程就创建一个线程,直到达到线程池的上限;
5.当任务数量超过上限时,就不会增加线程,而已让任务在线程池队列等候,当某个线程完成任务后,并不会马上终止,而是会由线程池外的等候任务进入由该线程执行,这样就减少了销毁所用的时间;
6.随着时间的变化,当任务量小于线程池上限时,空闲线程会空闲一段时间后销毁,销毁到数量为线程池下限为止;
7.当任务小于线程池下限时候,一部分线程执行任务,另一部分线程空闲;
8.当任务执行完时,所有线程为空闲状态并且所有的线程数量等于线程池下限。
数据库连接池同上