为什么要使用线程池:
1.服务端程序接受到的客户端的请求一般都是比较短小(执行时间短,工作内容单一)的任务,要求服务端能够快速处理并响应,服务端可以接收到一个请求就开一个线程进行处理,处理完后再销毁线程,这在原型阶段尚可工作。但是在实际中遇到成千上万的请求时,如果来一个请求就新建一个线程处理,那效率将是非常低下的,因为线程的创建和销毁都需要一定的资源开销,频繁的创建和销毁线程会极大的浪费系统的资源。
2.采用线程池技术,系统会提前创建好若干数量的线程放在“池中”,每次来一个任务就从池中取出一个线程对其进行处理,处理完后,再将该线程放回池中,等待被调用处理下一个任务,当任务到来时,池中没有空闲的线程时,任务将会被放进等待队列等待。这样使用数目固定或较为固定的线程来处理任务,避免了频繁创建和销毁线程的开销。