线程池问题

来源:12-7 用法二:用FutureTask获取结果

BingleyFeng

2020-03-03

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

写回答

2回答

悟空

2020-03-04

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

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

0
3
悟空
回复
BingleyFeng
恩对的
2020-03-04
共3条回复

海天s

2021-07-24

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

0
0

深度解密Java并发工具,精通JUC,成为并发多面手

JUC全方位讲解,构建并发工具类知识体系

1599 学习 · 573 问题

查看课程