ThreadPoolExecutor的参数的意义及解析
2021-04-16 14:59:10   10  举报             
     
         
 ThreadPoolExecutor的各个参数实际的意义,很有迷惑性!
    作者其他创作
 大纲/内容
 2
  易混淆点:----------------------------------------------------------------------------1. 阻塞队列是coreSize满了后,新任务会加入进去,而不是到达maxSize后才加入2. 当前线程数没有达到coreSize时,新任务一定会创建新线程直到达到coreSize3. 当queue满了后,才会继续创建新线程直到达到maxSize4. 线程存活时间是针对
  当一个新的任务来了... ...
    创建新的线程(runningSize+1)(coreSize可用-1)
  core: 10
  no
  继续创建线程(runningSize+1)(remainSize可用-1)
  remain: 90
  capacity: 100
  将任务放到队列中(realCapacity+1)
  runningSize < maxSize
  ... ...
  RejectedExecutionHandler
  1
  yes
  100
  max: 100
  runningSize<coreSize
  Context:----------------------------------------------------------------------------1. corePoolSize = 10  核心线程池大小。 2. maxPoolSize = 100 最大线程池大小。3. queueCapacity = 100  阻塞队列大小。4. keepAliveSeconds = 60s 空闲线程存活时间
  12
  10
  11
  wait
  keepAliveSeconds:只会销毁remain的线程,如果线程数不足coreSize,不会销毁任何线程。
  useQueueSize<maxCapacity
  capacity只会作用于coresize,当core线程全部繁忙的话那么新的任务就会进入队列等待被执行
  new Taskcomming in ...
   
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
 