重点看Callable方法
以下内容是Callable方法实现多线程过程中涉及到的概念
ExecutorService总共有三个submit方法:
Future<?> submit(Runnable task);
Future submit(Runnable task, T result);
Future submit(Callable task);
实际返回的是FutureTask对象,FutureTask是Future的间接子类
Future类的是一种异步任务监视器,可以让提交者可以监视任务的执行,同时可以取消任务的执行,也可以获取任务返回结果
public interface Future<V> {
//尝试取消执行任务
boolean cancel(boolean mayInterruptIfRunning);
//查看是否被取消
boolean isCancelled();
//是否执行完成
boolean isDone();
//获取线程执行结果
V get() throws InterruptedException, ExecutionException;
//延时获取
V get(long timeout, TimeUnit unit)
throws InterruptedException, ExecutionException, TimeoutExceptio
}