有人能解释线程生命周期是如何在线程池中工作的吗。它与正常的线程生命周期相同吗?
- ThreadPool可以用Future*包装您的Runnable/Callable(如果您使用submit((方法(
- 具有任务队列和饱和策略的可运行/可调用面
- 行为取决于:
- 池中的活动线程数
- corePoolSize
- 最大池大小
- 队列饱和
- 饱和策略(默认为AbortPolicy(
- 行为取决于:
- ThreadFactory创建Thread。可以配置:
- 设置UnaughtException处理程序
- 设置线程名称
- 设置后台程序标志
- beforeExecute((-空钩子方法,您可以重写它
- 运行线程
- afterExecute((**-空钩子方法,您可以重写它
- 线程可能被终止或等待处理新任务。由allowCoreThreadTimeOut((配置
*使用submit((方法更改afterExecute((的代码-处理Java ExecutorService任务的异常
**如果beforeExecute(
注意:线程池的部分行为类似于模式模板方法-beforeExecute((->run((->afterExecute(。