请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

线程池问题

线程池的submit方法既可以执行Runnable任务,也可以执行Callable任务,而execute 方法却只能运行Runnable任务。那submit方法是不是可以完全替代execute方法?为什么还留着execute方法???

正在回答

插入代码

2回答

他们在处理异常时,策略不同,execute会直接抛出,而submit会等Future.get时抛出。

参考:https://stackoverflow.com/questions/3929342/choose-between-executorservices-submit-and-executorservices-execute

0 回复 有任何疑惑可以回复我~
  • 提问者 BingleyFeng #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-03-04 20:16:56
  • 提问者 BingleyFeng #2
    知道了区别,那如何选择?stackoverflow上的建议:执行Runnable任务用execute,执行Callable任务用submit,我的理解对不对??
    回复 有任何疑惑可以回复我~ 2020-03-04 21:53:50
  • 悟空 回复 提问者 BingleyFeng #3
    恩对的
    回复 有任何疑惑可以回复我~ 2020-03-04 22:01:50
海天s 2021-07-24 12:09:55

老师说的是一点原因,但我觉得根本原因还是为了向后兼容。就是如果submit是在execute之后的版本开发的,那JDK为了向后兼容,肯定得保留execute,要是直接删除这个方法,岂不是很多工程都报错了。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号