随机匹配玩家 并发问题

鸡肉味嘎嘣脆

想用workman做一个随机匹配的小游戏 2个人一个房间pk

a玩家打开应用(H5) 点击匹配 服务器从 worker的connections属性里 遍历链接
选择connection->status=0(0代表空闲 1代表游戏中)假设选中b玩家跟a匹配 然后开始游戏

问题是 高并发下c玩家会和a玩家同时选择到b吗? 这个要怎么解决呀

阅读 1808
1个回答

mdx2007

业务做了判断的话不可能同时选择b的

  • 鸡肉味嘎嘣脆 2017-11-02

    之前操作过mysql 有锁表锁行的操作 就是防止高并发引起数据错误 这里担心高并发会让a和c同时选择到b的情况 我想知道workman里某一刻是不是只允许一条链接操作workman的属性 如果不是的话 会产生同时选择的情况呀 比如a匹配到b之后 要把b的connection->status改成1(1代表游戏中) 但在改成1的过程中 c进来判断b的connection->status还是0呀 这样就撞车了

  • mdx2007 2017-11-06

    workerman是多进程单线程的,单个进程内不会有并发操作,不会有问题。