基本接口
Callable
等于 runnable + return
: interface(call()方法,可以返回一个result)
Runable
interface (run()方法,没有返回值)
Future
存储将来执行的结果 callable 中的返回值
private void future() throws Exception{
ExecutorService executorService = Executors.newSingleThreadExecutor();
Future<String> future = executorService.submit(new Callable<String>() {
public String call(){
return "1";
}
});
System.out.println(future.get());//阻塞,获取值
}
FutureTask
等于future + runnable
private void futureTask() throws ExecutionException, InterruptedException {
FutureTask<String> futureTask = new FutureTask<>(()->{
return "1";
});
new Thread(futureTask).start();
System.out.println(futureTask.