1、我的理解
/**
*
* 一、什么叫未来任务FutureTask
* 定义:从字面上理解未来要执行的任务,未来需要通过手动的方式去取结果。
* 举例:老师上课的时候突然渴了,让班长买水,老师要喝的时候去取.
* 二、和回调函数的区别
* 回调函数会主动的通知结果,未来任务不是,需要主动的去取
*
* 三、Callable和Runable的区别
* callable 接口有返回值
* callable 接口的方法会抛异常
*
* 四、FutureTask 理解
* FutureTask 继承Runnable接口、构造器里面需要传一个Callable 接口。
*
* 五、创建线程的方式
* 1、继承Thread 类、2、实现Runable 接口、3、实现callable接口 4、线程池
* 无论实现Runable 接口还是实现callable接口 都需要借助Thread类
*
*
*/
2、代理举例
// 构造一个异步执行的对象,构造参数是callable 接口
FutureTask<String> futureTask1 = new FutureTask<String>(()->{
System.out.println(Thread.currentThread().getName()+"come in callable");
return "gaohq";
});
new Thread(futureTask1,"lucy").start();
while (!futureTask1.isDone()){
System.out.println("wait.....");
}
System.out.println(futureTask1.get());
System.out.println("\n");
System.out.println(futureTask1.get());