780 Star 7.1K Fork 2.6K

GVP京东零售 / asyncTool

 / 详情

小贴士:使用框架传入自定义线程池,需要循环引用会导致死锁

待办的
任务
创建于  
2022-10-26 14:44

类似美团技术文章中说的一样:
线程池循环引用会导致死锁

因为框架默认线程池是newCachedThreadPool:
创建一个可缓存的线程池。如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲(60秒不执行任务)的线程,当任务数增加时,此线程池又可以智能的添加新线程来处理任务。此线程池不会对线程池大小做限制,线程池大小完全依赖于操作系统(或者说JVM)能够创建的最大线程大小。

注意这边默认线程池的线程池大小不做限制,我理解作者写这个框架的初心是为了做很简单不耗时的操作,所以使用这个线程池并不会造成生产OOM,但是如果使用这个框架,每一个worker是很耗时的操作,就不能用默认的线程池了。

评论 (3)

Jacob Cheung 创建了任务

耗时多,且数量多,就需要加硬件配置

如果后台代码有2套业务,都需要用到Async 来控制并行, 使用默认的线程池会相互影响吧。

如果线程池数量够用,不会相互影响;生产环境一般都做业务隔离,每个业务使用一个线程池

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(4)
303698 tianyalei 1578919857 5478525 zhangjiankun2020 1658938288
Java
1
https://gitee.com/jd-platform-opensource/asyncTool.git
git@gitee.com:jd-platform-opensource/asyncTool.git
jd-platform-opensource
asyncTool
asyncTool

搜索帮助