package J20250801.homework; import java.util.Random; import java.util.concurrent.*; /** * @author WanJl * @version 1.0 * @title Demo05 * @description * @create 2025/8/1 */ public class Demo05 { private static Random ran=new Random(); public static void main(String[] args) { ExecutorService pool = Executors.newFixedThreadPool(3); try{ //提交价格 Future priceFuture= pool.submit(() -> getPrice()); //提交库存接口调用任务 Future stockFuture=pool.submit(()->getStock()); //提交评价接口调用任务 Future commentFuture=pool.submit(()->getCommentCount()); int price=priceFuture.get(); int stock=stockFuture.get(); int comment=commentFuture.get(); System.out.printf("商品信息:价格= %d元,库存= %d件,评价= %d 条好评\n",price,stock,comment); }catch (Exception e){ System.out.println("接口调用出现异常:"+e.getMessage()); }finally { //关闭线程池 pool.shutdown(); try { //等待10秒,10秒后强制关闭 if (!pool.awaitTermination(10, TimeUnit.SECONDS)){ pool.shutdownNow(); } } catch (InterruptedException e) { pool.shutdownNow(); } } } public static Integer getPrice() throws InterruptedException { int processing = processing(); int price=100+ran.nextInt(901); System.out.println("价格接口调用完成,返回:"+price+"元,耗时"+processing/1000+"秒"); return price; } public static Integer getStock() throws InterruptedException { int processing = processing(); int stock=ran.nextInt(1001); System.out.println("库存接口调用完成,返回:"+stock+"件,耗时"+processing/1000+"秒"); return stock; } public static Integer getCommentCount()throws InterruptedException { int processing = processing(); int commentCount=ran.nextInt(10001); System.out.println("评价接口调用完成,返回:"+commentCount+"条好评,耗时"+processing/1000+"秒"); return commentCount; } private static int processing() throws InterruptedException { int i = 1000 + ran.nextInt(2001); Thread.sleep(i); return i; } }