总结execute()和submit()方法的区别:

总结execute()和submit()方法的区别:

  1. 接收的参数不一样;

  2. submit()有返回值,而execute()没有;

    例如,有个validation的task,希望该task执行完后告诉我它的执行结果,是成功还是失败,然后继续下面的操作。

  3. submit()可以进行Exception处理;execute()直接抛出了异常,但它也仅仅是输出而已,我们无法使用日志框架对其进行记录,因为它这个打印动作我们是不可控的。

    例如,如果task里会抛出checked或者unchecked exception,而你又希望外面的调用者能够感知这些exception并做出及时的处理,那么就需要用到submit,通过对Future.get()进行抛出异常的捕获,然后对其进行处理。

posted @ 2020-09-08 22:45  Mistolte  阅读(2627)  评论(0编辑  收藏  举报