专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 问答 技术问答 Executor.submit()和Executor.execute()这两个方法有什么区别?

Executor.submit()和Executor.execute()这两个方法有什么区别?

酸酸de快乐已回答

Java 程序员,语法不忖慮。

前者返回一个Future对象,可以通过这个对象来获得工作线程执行的结果。

当我们考察异常处理的时候,又会发现另外一个不同。当你使用execute提交的任务抛出异常时,此异常将会交由未捕捉异常处理过程来处理(uncaughtexceptionhandler),当你没有显式指定一个异常处理器的话,默认情况下仅仅会通过System.err打印出错误堆栈。

当你用submit来提交一个任务的时候,这个任务一旦抛出异常(无论是否是运行时异常),那这个异常是任务返回对象的一部分。对这样一种情形,当你调用Future.get()方法的时候,这个方法会重新抛出这个异常,并且会使用ExecutionException进行包装。

浏览2,315技术问答
2021-06-17 09:22:52

聚焦热点问题
时时免费答疑

累计0人询问

极速问
  >>其他人还看过
更多问答

Java实验班

0学费 专业学前测评

Java就业班

围绕企业 直达就业

Java夜校班

业余时间学 超高性价比

Java架构师班

升职加薪 快速变现

返回顶部