线程池,简单来说就是有一堆已经创建好的线程(最大数目一定),初始时他们都处于空闲状态,当有新的任务进来,从线程池中取出一个空闲的线程处理任务,然后当任务处理完成之后,该线程被重新放回到线程池中,供其他的任务使用,当线程池中的线程都在处理任务时,就没有空闲线程供使用,此时,若有新的任务产生,只能等待线程池中有线程结束任务空闲才能执行,下面是线程池的工作原理图:

我们为什么要使用线程池呢?

简单来说就是线程本身存在开销,我们利用多线程来进行任务处理,单线程也不能滥用,无止禁的开新线程会给系统产生大量消耗,而线程本来就是可重用的资源,不需要每次使用时都进行初始化,因此可以采用有限的线程个数处理无限的任务。

最新文章

  1. golang笔记——函数与方法
  2. 德国GFZ
  3. Mysql常见四种索引的使用
  4. 详解javascript,ES5标准中新增的几种高效Array操作方法
  5. 关于Swift中实现Lazy initialize的方式
  6. 终端I/O之终端选项标志
  7. php服务器探针
  8. linux源代码阅读笔记 linux文件系统(三)
  9. TimePicker 和TimePickerDiag
  10. NET Core 数据保护2
  11. mssql 2008 失败 需要重新启动计算机 的解决办法
  12. (四)SAX方式解析XML数据
  13. hive UDAF开发入门和运行过程详解(转)
  14. JavaScript中 DOM操作方法
  15. 解读Raft(四 成员变更)
  16. 使用Vlc.DotNet打开摄像头并截图 C#
  17. Notepad++ --v7.5.8 (64bit) 安装目录显示插件(Explorer)
  18. liunx 修改ssh 端口22
  19. iOS开发之线程组解决请求多个接口数据,完成后,再刷新界面
  20. Spring+SpringMVC+MyBatis整合(easyUI、AdminLte3)

热门文章

  1. android android studio error
  2. Centos7.4 修改selinux错误导致服务器起不来
  3. keras及神经网络,以简单实例入门
  4. php quotemeta()函数 语法
  5. 【靶场练习_sqli-labs】SQLi-LABS Page-3 (Stacked Injections)
  6. create-react-app 配置 修改
  7. LocalActivityManager如何在一个Activity的一部分中显示其他Activity
  8. Mac os下设置国内镜像加速站
  9. 转载:AWR介绍使用
  10. Python 进阶_生成器 & 生成器表达式