400-650-7353

精品课程

线程池创建的四种 线程池创建的四种方式都是什么

发布: Java培训 发布时间:2021-10-12 18:01:48

推荐答案
品牌型号:联想小新Pro13/系统版本:windows10

通过Executors线程池创建的四种方法分别为:

newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。

newFixedThreadPool:创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。

newScheduledThreadPool:创建一个定长线程池,支持定时及周期性任务执行。

newSingleThreadExecutor:创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

 
  1. public class ThreadPoolExecutor extends AbstractExecutorService{//第一个构造方法public ThreadPoolExecutor(int corePoolSize, 
  2.                               int maximumPoolSize, 
  3.                               long keepAliveTime, 
  4.                               TimeUnit unit, 
  5.                               BlockingQueue<Runnable> workQueue) { 
  6.         this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, 
  7.              Executors.defaultThreadFactory(), defaultHandler); 
  8.     }//第二个构造方法public ThreadPoolExecutor(int corePoolSize, 
  9.                               int maximumPoolSize, 
  10.                               long keepAliveTime, 
  11.                               TimeUnit unit, 
  12.                               BlockingQueue<Runnable> workQueue, 
  13.                               ThreadFactory threadFactory) { 
  14.         this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, 
  15.              threadFactory, defaultHandler); 
  16.     }//第三个构造方法public ThreadPoolExecutor(int corePoolSize, 
  17.                               int maximumPoolSize, 
  18.                               long keepAliveTime, 
  19.                               TimeUnit unit, 
  20.                               BlockingQueue<Runnable> workQueue, 
  21.                               RejectedExecutionHandler handler) { 
  22.         this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, 
  23.              Executors.defaultThreadFactory(), handler); 
  24.     }//第四个也是真正的初始化构造函数public ThreadPoolExecutor(int corePoolSize, 
  25.                               int maximumPoolSize, 
  26.                               long keepAliveTime, 
  27.                               TimeUnit unit, 
  28.                               BlockingQueue<Runnable> workQueue, 
  29.                               ThreadFactory threadFactory, 
  30.                               RejectedExecutionHandler handler) { 
  31.         if (corePoolSize < 0 || 
  32.             maximumPoolSize <= 0 || 
  33.             maximumPoolSize < corePoolSize || 
  34.             keepAliveTime < 0) 
  35.             throw new IllegalArgumentException(); 
  36.         if (workQueue == null || threadFactory == null || handler == null
  37.             throw new NullPointerException(); 
  38.         this.corePoolSize = corePoolSize; 
  39.         this.maximumPoolSize = maximumPoolSize; 
  40.         this.workQueue = workQueue; 
  41.         this.keepAliveTime = unit.toNanos(keepAliveTime); 
  42.         this.threadFactory = threadFactory; 
  43.         this.handler = handler; 
  44.     }} 

其它答案
牛仔很忙2020-06-22 18:56:36

newCachedThreadPool创建可缓存线程池、newFixedThreadPool创建定长线程池、newScheduledThreadPool创建定长线程池、newSingleThreadExecutor创建单线程化线程池


上一篇:迭代的意思

下一篇:hdfs命令

中公旗下IT培训品牌

  • 中公教育品牌

     中公教育是一家中国领先的全品类职业教育机构,提供超过100个品类的综合职业就业培训服务。公司在全国超过1000个直营网点展开经营,深度覆盖300多个地级市,并正在快速向数千个县城和高校扩张。

  • 完善就业体系

    通过阶段性授课机制,和每阶段的定期考核,先让学员能够学会所学内容,才能找打合适工作。最后一个阶段为就业课程,从技术和面试两个方面加深就业能力,并且还有不定期的双选会供大家选择。

  • 全程面授+实战技术

    线下课程全程是师资面对面教学,不会存在上课只对着大屏幕上课的情况,有问题都可以在课上得到解答。并且优就业通过自主研发大纲和学习路线,并且定期更新课程所学技术,让大家所学技术不落伍。

中公优就业专业职业规划老师

为您详细答疑解惑,更能领取免费课程

相关问题

更多课程

专业课程老师将第一时间为您解答

立即答疑
修改
优就业:ujiuye

关注中公优就业官方微信

  • 关注微信回复关键词“大礼包”,领80G学习资料