java线程池

1. 为什么要引入线程池?


参考:http://blog.csdn.net/chaos436/article/details/3430509

摘要:服务器应用程序一个过于简单的模型应该是:每当一个请求到达就创建一个新线程,然后在新线程中为请求服务。弊端: 每个请求对应一个线程(thread-per-request)方法的不足之一:为每个请求创建一个新线程的开销很大;为每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的系统资源要比花在处理实际的用户请求的时间和资源更多。 例如web服务器完成网页请求的任务,单个任务小,而任务数量巨大。


线程池为线程生命周期开销问题和资源不足问题提供了解决方案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。当请求到达时线程已经存在,所以无意中也消除了线程创建所带来的延迟。这样,就可以立即为请求服务,使应用程序响应更快。而且,通过适当地调整线程池中的线程数目,也就是当请求的数目超过某个阈值时,就强制其它任何新到的请求一直等待,直到获得一个线程来处理为止,从而可以防止资源不足。


2. 如何创建线程池?

参考:

1. http://www.cnblogs.com/jersey/archive/2011/03/30/2000231.html

2. http://www.ibm.com/developerworks/cn/java/l-threadPool/

你可能感兴趣的:(java线程池)