runable可以看做是异步的没参数没返回值的一个线程任务,
Callable与Runnable累世 但是有返回值,它有个参数化泛型方法call是返回值的类型。
Future保存异步计算的结果,可以启动一个计算 future对象交给某个对象,然后忘掉它,
在计算好后可以获得结果。
Future接口有以下方法:
public interface Futere<v>
{
v get() throws
v get(timeout:long,uit:timeUtil)
cance(): void
isCance();
isDone();
}
他们的作用从名字就可以看出来,
FutureTask 是以个包装器,可以将CallAble 和Future包装起来,实现runnable接口和future接口。
FutureTask<String> task = new FutureTask<String>(
new Callable<String>() {
public String call() throws Exception {
return "just test!";
}
});
new Thread(task).start();
System.out.println(task.get());