代码拉取完成,页面将自动刷新
你好,发现一个问题,当任务很多且依赖关系复杂时,会发生阻塞超时的情况,这时需要加大线程池核心线程数才能解决。查看源代码好像发现了问题所在。
WorkerWrapper.beginNext 方法内有一段
这时假设线程池只有一个线程,CompletableFuture.runAsync 会另起线程异步执行,且下面CompletableFuture.allOf(futures).get()会阻塞代码占用当前线程,这样异步执行的逻辑就没办法执行了吧。。。
这时只有加大线程数才能解决问题,不然就会一直等待。
是的,正常不应该用默认的CommonPool,应该传入自定义的线程池。根据自己业务、并发量,设置100-500不等
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
是的,正常不应该用默认的CommonPool,应该传入自定义的线程池。根据自己业务、并发量,设置100-500不等
我用ForkJoin替换掉ExecutorService和CompletableFuture可以支持不限制线程数了,测试了一下test文件夹下的和公司业务代码没发现什么问题 。
能解决就好。一般我门会限制线程数,不会让他无限增长
登录 后才可以发表评论