执行execute()方法和submit()方法的区别是什么呢?

发布于 2019-11-22 10:40:13
关注者
0
被浏览
1157
2 个回答
  • 面试哥
    面试哥 2020-01-08
    为面试而生,有面试问题,就找面试哥。

    execute():只能执行 Runnable 类型的任务。

    submit():可以执行 Runnable 和 Callable 类型的任务。

    Callable 类型的任务可以获取执行的返回值,而 Runnable 执行无返回值。

  • 面试哥
    面试哥 2019-12-04
    为面试而生,有面试问题,就找面试哥。

    1) execute() 方法用于提交不需要返回值的任务,所以无法判断任务是否被线程池执行成功与否;

    2)submit()方法用于提交需要返回值的任务。线程池会返回一个future类型的对象,通过这个future对象可以判断任务是否执行成功,并且可以通过future的get()方法来获取返回值,get()方法会阻塞当前线程直到任务完成,而使用 get(long timeout,TimeUnit unit)方法则会阻塞当前线程一段时间后立即返回,这时候有可能任务没有执行完。

面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看