像Web服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小任务。以某种方式请求到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP )、通过 JMS 队列或者可能通过轮询数据库。无论请求如何到达,服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数量却是巨大的。到达请求就创建一个新线程,但是在新线程中为请求服务,中断的创建线程,想想线程所带来的系统开销其实是非常大的。
线程池为线程生命周期前沿问题和资源不足问题提供了解决方案
通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。其好处是,因为在请求到达时线程已经存在,所以创建无意中也消除了线程所带来的延迟。这样,就可以立即为请求服务,使应用程序响应更快。而且,通过适当地调整线程池中的线程数量,或者当请求的数量超过某个阈值时,就强制任何新到达的请求一直等待,直到获得一个线程来进行状况处理,从而可以防止资源短缺。
风险与机遇
使用线程池构建的应用程序很容易遭受任何其他多线程应用程序的所有并发风险,例如同步错误和死锁,它也很容易遭受特定于线程池的少数其他风险,例如与有关的死锁、资源不足和线路中断。
文章知识点与官方知识档案匹配,可进一步学习相关知识
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_59205365/article/details/141233683