首页 > 编程语言 > 详细

spring ThreadPoolTaskExecutor使用总结

时间:2019-04-30 22:34:39      阅读:311      评论:0      收藏:0      [点我收藏+]

ThreadPoolTaskExecutor提供TaskDecorator可以实现类似ThreadPoolExecutor.afterExecute()类似功能

taskDecorator主要是对Runnable任务装饰一下, 在任务执行时完成异常日志打印、ThreadLocal清理等功能
但是对Callable任务(由submit()方法提交的任务),这个taskDecorator虽然也能装饰,但是并不能捕获异常, 因为类似FutureTask的run方法内部自己补获了异常,不会抛出到afterExecute方法中

技术分享图片

要想捕获类似FutureTask的异常,需要手动调用get(), 参考ThreadPoolExecutor.afterExecutor()的doc注释
技术分享图片

最终在ThreadPoolTaskExecutor中的样子大概如下:
技术分享图片

submit()任务最终也会走execute()

spring ThreadPoolTaskExecutor使用总结

原文:https://www.cnblogs.com/yszzu/p/10798232.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!