问题描述
今天的问候!
我正在使用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 (将#修改为@)