Task task = new Task();
ExecutorService executorService = Executors.newCachedThreadPool();
Future<String> future = executorService.submit(task);
try {
//阻塞方法
String result = future.get();
Log.d(TAG, "future result = " + result);
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
//FutureTask实现了Callbale和Runnable接口
FutureTask<String> futureTask = new FutureTask<>(task);
Thread thread = new Thread(futureTask);
thread.start();
boolean done = futureTask.isDone();
boolean cancelled = futureTask.isCancelled();
futureTask.cancel(true);