本文共 924 字,大约阅读时间需要 3 分钟。
void execute(Runnable command);
无返回值,只能接收Runnable的实现。
Future submit(Callable task);
Future submit(Runnable task, T result); Future<?> submit(Runnable task);
有返回值,并且通过Future.get()获取返回值或异常信息,能接收Callable或Runnable的实现。
源码:
public Future submit(Runnable task) { if (task == null) throw new NullPointerException(); RunnableFutureftask = newTaskFor(task, null); execute(ftask); return ftask; } public Future submit(Runnable task, T result) { if (task == null) throw new NullPointerException(); RunnableFuture ftask = newTaskFor(task, result); execute(ftask); return ftask; }
区别:通过源码分析两个都是执行newTaskFor(Runnable, T),然后会将传入的T返回出来,第一个默认传入的泛型是一个null,所以返回值也是null。
转载地址:http://ddchb.baihongyu.com/