ScheduledThreadPool定时调度线程池工作原理
2017-04-09 15:25:36   0  举报             
     
         
 ScheduledThreadPool是Java中的一个线程池,它主要用于执行定时任务和周期性任务。它的工作原理是通过内部维护一个工作队列,将需要执行的任务提交到这个队列中,然后由线程池中的空闲线程去取出任务并执行。同时,ScheduledThreadPool内部还维护了一个优先级队列,用于存放定时任务。当到达预定的执行时间时,线程池会从优先级队列中取出任务并执行。如果线程池中没有空闲线程,那么任务会被放入工作队列中等待执行。通过这种方式,ScheduledThreadPool能够有效地管理线程资源,避免了频繁创建和销毁线程带来的开销。
    作者其他创作
 大纲/内容
 主线程
  线程
  无界阻塞队列DelayQueue
  2.add(ScheduledFutureTask task)
  ............
  corePool
  3.核心线程并发循环从任务队列中take(),执行run()任务
  ScheduledThreadPool
  4.执行完任务后,若任务周期性任务,则计算下次任务开始时间time,重新加入到任务队列中
  队头,延时时间最短,最先创建的任务
   
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
 