线程生命周期如何在线程池中工作


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

*使用submit((方法更改afterExecute((的代码-处理Java ExecutorService任务的异常
**如果beforeExecute(

注意:线程池的部分行为类似于模式模板方法-beforeExecute((->run((->afterExecute(。

最新更新