想用workman做一個隨機匹配的小游戲 2個人一個房間pk
a玩家打開應(yīng)用(H5) 點擊匹配 服務(wù)器從 worker的connections屬性里 遍歷鏈接 選擇connection->status=0(0代表空閑 1代表游戲中)假設(shè)選中b玩家跟a匹配 然后開始游戲
問題是 高并發(fā)下c玩家會和a玩家同時選擇到b嗎? 這個要怎么解決呀
業(yè)務(wù)做了判斷的話不可能同時選擇b的
之前操作過mysql 有鎖表鎖行的操作 就是防止高并發(fā)引起數(shù)據(jù)錯誤 這里擔(dān)心高并發(fā)會讓a和c同時選擇到b的情況 我想知道workman里某一刻是不是只允許一條鏈接操作workman的屬性 如果不是的話 會產(chǎn)生同時選擇的情況呀 比如a匹配到b之后 要把b的connection->status改成1(1代表游戲中) 但在改成1的過程中 c進來判斷b的connection->status還是0呀 這樣就撞車了
workerman是多進程單線程的,單個進程內(nèi)不會有并發(fā)操作,不會有問題。