一.场景
今天看到一个需求:收到客户端的订单请求以后,需要检查商品的库存能否满足,并且查询该客户按照当前的价格策略能否享受订单的折扣才能接受该订单,而这两个查询是非常耗时的操作。
二.分析
1.按照最初的单线程的方式实现如下:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class AsynchronousTest {
int count=20;//库存量
int sumPare=100;//要求达到的订单价格
private ExecutorService executorService= Executors.newCachedThreadPool();//创建线程池
//单线程,进行订单处理流程
public void getOrder(String orderName,int parce){
System.out.println("获取到订单信息"+orderName);
//判断库存的充足情况
boolean kucun=count<=0?true:false;
//判断是否能够进行订单折扣
boolean flag=parce>=sumPare?true:false;
//进行下单
if(kucun && flag){
System.out.println("下单成功,订单名:"+orderName+"订单价格:"+parce);
}else{