Redis - 應用(秒殺V1版)

不加鎖版,導致數據錯亂。

@Override
public void orderProductMockDiffUser(String productId)
{
    //1.查詢該商品庫存,爲0則活動結束。
    int stockNum = stock.get(productId);
    if(stockNum == 0) {
        throw new SellException(100,"活動結束");
    }else {
        //2.下單(模擬不同用戶openid不同)
        orders.put(KeyUtil.genUniqueKey(),productId);
        //3.減庫存
        stockNum =stockNum-1;
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        stock.put(productId,stockNum);
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章