问题:请利用多线程的基础知识,在两种情况下完成做饭、备菜(买菜、洗菜)、煮菜、开始吃饭的功能。1.蔬菜准备(购买和清洗):1秒,烹饪:2秒,烹饪:5秒2.蔬菜准备(购买和清洗):1秒,烹饪:8秒,烹饪:5秒。说明:只有烹调、准备、烹调都完成了,才能开始用餐。在这两种情况下,所有的动作都应该在尽可能短的时间内完成。方法:通过判断FutureTask+Callable+线程状态包com.high.currency11;importjava.util.concurrent.Callable;publicclassRiceimplementsCallable{@OverridepublicRicecall()throwsException{System.out.println("开始做饭");线程.睡眠(5000);//模拟烹饪时间System.out.println("Cookingfinished");返回新米饭();}}买菜洗菜包com.high.currency11;importjava.util.concurrent.Callable;publicclassVegetableimplementsCallable{@OverridepublicVegetablecall()throwsException{System.out.println("开始买菜洗菜");线。睡眠(1000);//模拟买菜洗菜时间System.out.println("买菜洗菜完成");返回新蔬菜();}}烹饪包com.high.currency11;importjava.util.concurrent.Callable;publicclassCookimplementsCallable{@OverridepublicCookcall()throwsException{System.out.println("开始烹饪");//模拟做饭时间Thread.sleep(8000);Cookcook=newCook();系统.out.println("烹饪完成");返回厨师;}}餐包com.high.currency11;importjava.util.concurrent.ExecutionException;importjava.util.concurrent.FutureTask;publicclassDinner{publicstaticvoidhaveDinner()throwsInterruptedException,ExecutionException{Ricerice=newRice();FutureTask
