线程池

人走茶凉 提交于 2020-03-18 19:25:23

使用Executors可以生成的线程池

newFixedThreadPool 创建固定大小的线程池
newSingleThreadExecutor 创建只有一个线程的线程池
newCachedThreadPool 创建一个不限线程数上限的线程池,任何提交的任务都将立即执行
newScheduledThreadPool 定时或者延迟执行的线程池

使用上面的线程池会出现两种OOM

  1. 无限制的创建线程
  2. 等待队列无线扩展

由于这两种OOM,所以一般使用线程池需要使用new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue)或者它的重载生成

其中我们需要指定

                              corePoolSize:核心线程数量

                              maixmumPoolSize:最大线程数量

                              keepAliveTime:线程闲置存活时间

                              unit:keepAliveTime单位

                              workQueue:等待队列

                              rejectedHandler:拒绝的回调函数

 

线程执行的流程

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!