怎样扩展ThreadPoolExecutor

ThreadPoolExecutor是可扩展的,它提供了以下几个可以在子类化中改写的方法。

ThreadPoolExecutor是可扩展的,它提供了几个可以在子类化中改写的方法:

  • beforeExecute(): 在给定的线程中执行给定的Runnable之前调用方法。
  • afterExecute(): 完成指定Runnable的执行后调用方法。
  • terminated(): 执行程序已终止时调用方法

这些方法可以用于扩展ThreadPoolExecutor的行为。 在执行任务的线程中将调用beforeExecute和afterExecute等方法,在这些方法中还可以添加日志、计时、监视或统计信息收集的功能。无论任务是从run中正常返回,还是抛出一个异常而返回,afterExecute都会被调用。(如果任务在完成后带有一个Error,那么就不会调用afterExecute。)如果beforeExecute抛出一个RuntimeException,那么任务将不被执行,并且afterExecute也不会被调用。 在线程池完成关闭操作时调用terminated,也就是在所有任务都已经完成并且所有工作者线程也已经关闭后。terminated可以用来释放Executor在其生命周期里分配的各种资源,此外还可以执行发送通知、记录日志或者收集finalize统计信息等操作。attachments-2020-11-xZeBhuBk5fb639080e860.png


  • 发表于 2020-11-19 17:21
  • 阅读 ( 16 )

0 条评论

请先 登录 后评论
热爱技术的小仓鼠
热爱技术的小仓鼠

145 篇文章

作家榜 »

  1. NX小编 1233 文章
  2. 58沈剑 311 文章
  3. 热爱技术的小仓鼠 145 文章
  4. 奈学教育 139 文章
  5. 李希沅 | 奈学教育 41 文章
  6. 江帅帅 | 奈学教育 29 文章
  7. 林淮川 | 奈学教育 12 文章
  8. 邱鹏超 3 文章