我是否理解submit
和execute
之间的差异,async
和sync
来电?在第二种情况下,调用者将被停止直到可运行完成?
public static ExecutorService serialQueue = Executors.newFixedThreadPool(1);
我使用ExecutorService
作为串行队列,一次只能运行一个任务。
答案 0 :(得分:3)
submit()
会返回Future
,而execute()
则不会返回任何内容。它看起来都是异步的,但是使用submit()
,您可以在返回的future.get()
上调用Future
以阻止,直到提交的任务实际完成为止。此外,如果该任务具有您想要获得的结果值,则可以submit()
使用Callable
代替Runnable
,future.get()
调用将为您提供结果