游戏开发并发问题
问:今天去面试,问了一个这样的问题,1000个人打一个boss,打败boss的最后一击可以获得额外奖励,因为有额外奖励,大家都会等boss血量最低的时候打最后一下,如何设计这里,可以保证
- 判断不会失误
- 延迟低
答:
- 我首先想到的是用锁,但是具体的后续人员会有等待锁的情况,但是具体的锁是如何等待的没答上来
- 后面又想到用队列,判断谁打的最后一下,给客户端发消息就行
现在的却也是有疑问,这里该如何实现会比较好,希望有大神看看
Redis 的 decrby 应该就足够了。
每次攻击时执行
此时
decrby
会返回扣减之后的值