原始问题:
用java 设计一个秒杀系统,200件商品,同时10000人抢,每个人只能抢一件,相关代码请贴出
1.定义商品类,记录商品库存量,以及抢购人数
2.定义秒杀类,初始化200个商品对象,提供一个抢购的方法
3.定义10000个用户线程,在run方法中进行抢购
public class Goods {
// 库存量
private int stock;
// 抢购人数
private int buyCount;
public Goods(int stock){
this.stock = stock;
this.buyCount = 0; // 初始化时未有人抢购 设为0
}
public synchronized void reduceStock(){ // 同步方法保证原子性 防止多人同时修改库存量 造成错误的情况出现
if(stock > 0){ // 如果库存大于0 才能进行减少库存的动作
stock--; // 减少库存量 每一件物品只能有一个用户进行够买
buyCount++; // 每当有一件物品出去时 这件次数加1 用于之后的判断是否所有物品都已经卖光了
System.out.println("剩余" + stock + "件"); // 测试使用 用来显示剩余多少件物品 看看是否都卖光了
}else{ // 如果店面已全部卖光了 进行执行相关逻辑处理 (此处省略)
System.out.println("已全部卖光"); // 测试使用 用来显示是否都卖光了 看看是否都卖光了 } }
Prev:设计一个秒杀系统,200件商品,同时10000人抢,每个人只能抢一件