- 介绍
- 源码分析
- Executor
- ExecutorService
- AbstractExecutorService#newTaskFor
- AbstractExecutorService#submit
- AbstractExecutorService#doInvokeAny()
- AbstractExecutorService#invokeAny()
- AbstractExecutorService#invokeAll()
- ThreadPoolExecutor
- ThreadPoolExecutor 构造函数
- Executors#defaultThreadFactory()
- Executors#DefaultThreadFactory
- ThreadPoolExecutor#execute()
- ThreadPoolExecutor#addIfUnderCorePoolSize()
- ThreadPoolExecutor#addThread()
- ThreadPoolExecutor#Worker
- ThreadPoolExecutor#beforeExecute()
- ThreadPoolExecutor#afterExecute()
- ThreadPoolExecutor#getTask()
- ThreadPoolExecutor#workerCanExit()
- ThreadPoolExecutor#interruptIdleWorkers()
- ThreadPoolExecutor#workerDone()
- ThreadPoolExecutor#tryTerminate()
- ThreadPoolExecutor#ensureQueuedTaskHandled()
- ThreadPoolExecutor#addIfUnderMaximumPoolSize()
- ThreadPoolExecutor#shutdown()
- ThreadPoolExecutor#shutdownNow()
- ThreadPoolExecutor#drainQueue()
- ThreadPoolExecutor#awaitTermination()
- ThreadPoolExecutor#finalize()
- ThreadPoolExecutor#prestartCoreThread()
- ThreadPoolExecutor#prestartAllCoreThreads()
- ThreadPoolExecutor#setCorePoolSize()
- ThreadPoolExecutor#setMaximumPoolSize()
- 实现RejectedExecutionHandler接口
介绍
ThreadPoolExecutor是JUC包中提供的线程池,使用ThreadPoolExecutor的好处一方面是能重用线程资源,避免重复创建线程带来的开销;另一方面是ThreadPoolExecutor提供了内部资源(线程、任务)的管理功能,方便我们监控线程池工作状态。
源码分析
ThreadPoolExecutor类结构图
Executor
1 | public interface Executor { |
标注代码分析
- 根据注释很好理解。command可以在新线程里执行,可以在线程池里执行,可以被调用线程执行等等。