public static ExecutorService newFixedThreadPool(int nThreads) {return new ThreadPoolExecutor(nThreads, nThreads,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>());}newCachedThreadPoolnewCachedThreadPool方法创建一个工作线程数量有巨大弹性的线程池,其核心线程数corePoolSize=0而最大线程数maximumPoolSize为Integer.MAX_VALUE,60s的保活时间 。同时其工作队列是SynchronousQueue,是一种队列容量为0、无法缓存任何任务的阻塞队列(任何时候插入数据(offer)时必须有消费者线程消费,否则生产者线程将会被阻塞) 。这也意味着“cachedThreadPool”中没有核心线程,所有工作线程在任务负载较低时都会在60s的idle后被销毁;同时当负载较高,新任务到来时由于所有的工作线程都在执行其它任务,将会立即创建一个新的非核心线程来处理任务 。适用场景:由于可以无限制的创建新线程来做到及时响应任务,“cached
经验总结扩展阅读
- 如何保护环境
- 哥哥给弟弟的生日祝福句子
- 送给自己的生日快乐句子
- 闺蜜生日快乐的祝福语
- 哪些星座善于伪装自己 不会轻易透露隐私
- 廉租房能自己装修吗 廉租房申请下来可以不住吗
- 申请廉租房需要查自己的个人征信吗 公租房与廉租房的区别在哪里
- 廉租房需要摇号吗 廉租房需要自己装修吗
- 自己手剥核桃仁怎么储存
- 我的Vue之旅 10 Gin重写后端、实现页面详情页 Mysql + Golang + Gin
