多线程part8-线程池

以前写多线程的弊端

  用到线程的时候就创建

  用完之后线程消失

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

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

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

 

核心原理

  1.创建空池子

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

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

 

代码实现:

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

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

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

 

posted @ 2023-07-11 05:34  名泽  阅读(22)  评论(0)    收藏  举报