【发布时间】:2011-04-30 06:54:32
【问题描述】:
我发现有两种方式(提交和执行)将Runnable添加到线程池中,有什么区别?
【问题讨论】:
标签: java multithreading
我发现有两种方式(提交和执行)将Runnable添加到线程池中,有什么区别?
【问题讨论】:
标签: java multithreading
不同之处在于execute 不返回Future,因此您不能等待Runnable 完成并使用它获取它引发的任何异常。
【讨论】:
Future 还允许您获取Runnable 抛出的异常。
submit 调用,而它将为 execute 调用。
【讨论】:
submit(...)方法是ExecutorService接口中引入的执行器框架扩展。
它与execute(Runnable) 的主要区别在于submit(...) 可以接受Callable<V>(而execute() 只接受Runnable)并返回Future<V> 的实例,您可以稍后在调用程序中使用它异步检索结果(可能会阻塞直到Callable 执行的计算完成)。
【讨论】: