一、Promise模式
以烧水、泡茶这个过程举例,烧水耗时3分钟,泡茶耗时1分钟。用代码实现该功能,有下图所示的三种方式
1)单线程模式,先烧水再泡茶,那么会耗时4分钟,即上图中第一行
2)多线程模式,即最基础的Thread线程,烧水是一个线程,泡茶是一个线程,2个线程同时start,但这样的话主线程会很快结束,无法统计总共耗时,即上图中第二行
3)使用FutureTask,烧水是一个FutureTask,喝茶是一个FutureTask,总共耗时3分钟,并且全部执行完后主线程才会结束
在需要使用多线程提高效率,并且需要知道线程运行结果的场景下,就可以使用FutureTask