### 问题1(考察多线程) 假设你现在需要写1个电商APP的用户订单详情接口,这个详情页包含: - 关联的商品信息,比如商品名称、尺码、图片、文字介绍等等 - 订单的基础信息,比如创建时间、支付金额 - 订单的快递信息,比如从上海运往杭州,目前运输车辆的位置 这三种数据,彼此之间不耦合,假定每一个查询耗时1秒,单线程的情况下,同步执行三次查询,则需要3秒,如何加速这个查询? 答案:多线程并行查询,实现方案 - CompletableFuture,allOf、runAsync、supplyAsync函数 - Future或者FutureTask,轮询isDone函数,确保异步任务执行完毕,若有返回值,使用get函数获取结果 如果回答的是CompletableFuture,继续延伸以下问题: - CompletableFuture的默认线程池是什么?答案:ForkJoinPool - ForkJoinPool适合CPU密集型还是IO密集型任务?答案:CPU密集型 - 用CompletableFuture处理IO密集型的任务,应该怎么做?答案:自定义一个IO密集型的线程池 ### 问题2(考察对Mybatis-Plus或者Mybatis框架的熟练度)