线程状态,线程池ThreadPoolExecutor框架结构图
2019-02-27 14:55:27 0 举报
线程状态,ThreadPoolExecutor线程池
作者其他创作
大纲/内容
AbstractExecutorService
Executor
execute(Runnable command) :void
超时等待(time_waiting)
初始化(new)
获取到锁
ThreadPoolExecutor的任务调度逻辑
线程调度
ScheduledExecutorService
成功
是
是否达到线程池max容量
等待进入synchronized标识的方法体或方法块
等待(waiting)
Executors
+ newFixedThreadPool(int nThreads) : ExecutorService+ newWorkStealingPool() : ExecutorService+ newSingleThreadExecutor() : ExecutorService + newCachedThreadPool() : ExecutorService
yield()
否
提交线程池
ScheduledThreadPoolExecutor
scheduleAtFixedRate从任务执行开始计算下一个任务时间scheduleWithFixedDelay从任务执行完成计算下一个任务时间
等待执行
线程状态
就绪Ready
分配线程执行
ForkJoinPool
Thread.start()
小于coreSize
Executor框架结构图
执行完成
任务提交
ExecutorService
Object.notify()Object.notifyAll()LockSupport.unpark()
运行状态
实例化
提交成功,分配线程执行
ThreadPoolExecutor
Object.wait(long)Thread.join(long)LockSupport.parkUtil()LockSupport.parkNanos()Thread.sleep(long)
Object.wait()Thread.join()LockSupport.park()
终止(terminated)
提交到等待队列
阻塞(blocked)
提交失败,拒绝执行
运行中Running
0 条评论
下一页