前言

这篇文章主要梳理下一个项目的各种线程池,以及这些线程池如何配合着完成工作,都实现了些什么功能。文章主要着眼于整体的线程池设计,可能涉及具体线程池的实现,但不会做太深入的讲解,目的是让自己对整体项目有个线程池视角的全局观。

线程池基本概念

线程池是什么
进程是内存分配的基本单位,而线程是CPU调度的基本单位,线程池通过预先维护一定数量的线程,减少线程创建与销毁的开销,提升响应速度,便于管理系统资源。

线程池解决的问题是什么
线程池解决的核心问题是资源管理的问题。并发环境下,系统无法确定某个时刻,有多少任务需要执行,有多少资源需要投入,而系统的资源是有限的,这个不确定性会带来以下问题:

  • 频繁的创建、调度、销毁资源,会带来额外的消耗,降低响应速度;
  • 资源无限制的申请可能导致系统资源被耗尽。

应用

  • 数据库连接池
  • Tomcat处理线程池

项目线程池的视图和分类

项目

Tomcat线程池

项目请求处理线程池

定时任务线程池

数据库客户端连接线程池

数据库服务端连接池

总结

参考

声明:本站所有文章均为原创或翻译,遵循署名 - 非商业性使用 - 禁止演绎 4.0 国际许可协议,如需转载请确保您对该协议有足够了解,并附上作者名 (Tsukasa) 及原文地址