多线程part8-线程池

以前写多线程的弊端

  用到线程的时候就创建

  用完之后线程消失

为了避免浪费,所以我们需要一个容器

起初线程池是空的,当给线程池提交任务时会自动创建线程去执行任务,执行完后线程不消失,回归线程池,之后就不需要创建线程

当线程正忙着执行一个任务时,会创建新的线程

 

核心原理

  1.创建空池子

  2.提交任务时,池子创建新的线程对象,任务执行完毕,线程回归池子,下次再次提交任务时,不需要创建新的线程,直接复用已有的

  3.提交任务时,池子没有空闲线程,也无法创建新的线程时,任务会排队等待

 

代码实现:

  Executors:线程池的工具类通过调用方法返回不同类型的线程池对象

  ExecutorService newCacheThreadPool()  创建一个没有上限的线程池(上限为int的最大值)

  ExecutorService newFixedThreadPool(int nThreads)  创建有上限的线程池

 

posted @   名泽  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示