目前开发中遇到一个问题,我简单描述一下,请高手赐教。
一个斗地主的棋牌游戏,3个玩家凑足一个牌桌,并开始游戏,游戏结束后离开牌桌。我现在的问题出现在玩家加入游戏,如何分配牌桌上。
我的实现思路是这样的,初始化一个Map<tableId,Table> 存放牌桌,当有玩家加入,给map加锁。如果map为空,则创建一个牌桌;如果map不为空,则遍历map找到不足3个人的牌桌;如果牌桌都是满的,则创建新牌桌。创建新牌桌,或者找到不足3人的牌桌后,将当前玩家放入牌桌中。新创建的牌桌放到map中。
当并发加入量达到2000以上时,就会发现很卡。还请高手给提一些建议。