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