为什么ThreadPoolExecutor执行方法在同一任务中运行两次,而Submit方法在Java中正确运行一次,

问题描述

今天的问候!

我正在使用Java中的ThreadPoolExecutor通过Execute(Runnable task)方法执行某些任务。我正在提交两个任务,例如task A and task B,但是从未执行过task A,并且两个不同的线程两次执行过task B。 为此,我尝试使用Submit(Runnable task)方法,它一次正确地执行了两个任务。 可以请我帮忙了解一下为什么在Execute方法中线程两次拾取同一任务的原因,而在Submit方法中线程为什么选择两个任务等待A的完成然后执行{{ 1}}。 下面的示例代码供参考: 在这里,如果我两次调用B来执行两个任务(A&B),则只有B运行两次,并且如果我只是将class A asyncProcess方法替换为execute方法({{ 1}}),那么这两个任务将正常运行。我可能是错的,或者没有正确的专业知识,要去哪里出错或缺少某些东西,请帮助我理解。

submit

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)