场景:假如你突然想做饭,但是没有厨具,也没有食材。网上购买厨具比较方便,食材去超市买更放心。
实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材。所以,在主线程里面另起一个子线程去网购厨具。
但是,子线程执行的结果是要返回厨具的,而run方法是没有返回值的。所以,这才是难点,需要好好考虑一下。
模拟代码:
1 package test; 2 3 import java.util.concurrent.Callable; 4 import java.util.concurrent.ExecutionException; 5 import java.util.concurrent.FutureTask; 6 7 public class FutureCook { 8 9 public static void main(String[] args) throws InterruptedException, ExecutionException { 10 long startTime = System.currentTimeMillis(); 11 // 第一步 网购厨具 12 Callable<Chuju> onlineShopping = new Callable<Chuju>() { 13 14 @Override 15 public Chuju call() throws Exception {