码迷,mamicode.com
首页 > 其他好文 > 详细

ThreadPollExecutor中execute和submite的区别

时间:2020-09-16 12:14:48      阅读:35      评论:0      收藏:0      [点我收藏+]

标签:否则   callable   runnable   结果   command   不同   code   封装   result   

1:入参不同

  excute() 传入的是 Runable,

  submit 传入的是 Callable 或 Runable

  1):execute 方法源码

    public void execute(Runnable command) {
         ...      
  }

  2):submit方法源码

    public Future<?> submit(Runnable task) {
       ... }

 

    public <T> Future<T> submit(Runnable task, T result) {
        ...
  }

 

    public <T> Future<T> submit(Callable<T> task) {
       ... 
  }

 

2:回参不同

  execute 无返回值,submit 有返回值

  1):submit 底层调用的还是 execute 方法,传入Callable 也会转化为 Runable 并交给 execute方法处理。

  2):对submit 方法返回的结果(Future)进行 get() 的时候会导致调用方阻塞,直至 submit 内部异常或成功返回结果。

  3):submit 的异常封装在结果(Future)中,要调用 get() 方法才会抛出异常,否则无法抛出异常。

 

ThreadPollExecutor中execute和submite的区别

标签:否则   callable   runnable   结果   command   不同   code   封装   result   

原文地址:https://www.cnblogs.com/zgq7/p/13602989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!