我正在开发一个多人游戏,我想把两个不认识的玩家与数据库中的研究联系起来。所以我想要这样做:
我的问题是:我怎么能确定在同一时刻搜索一个随机玩家的两个玩家会选择两个不同的球员,而不是相同的,因为选择返回相同的球员?换句话说,选择同步还是异步?
发布于 2014-03-19 12:31:44
我希望你做的是3层设计,而不是2层。例如,程序是否连接到中间连接到数据库(3层)的服务器,还是程序直接连接到数据库(2层)?
如果是2层,您可能必须将select封装在某种事务中,该事务可以抓取播放机并更新表,这样第二个请求就不会抢占同一个播放器。附带注意,您可能需要考虑切换到3层设计,以便更好地管理用户可以和不能对数据库所做的事情。
如果是3层,您可能可以通过使用您所使用的语言提供的某种锁定系统来在中间构建服务器,从而避免这一切。大多数现代编程语言现在都提供了一些语法,允许您指定一次只能运行一个给定的代码段,从而允许您管理这类并发问题。
在MySQL并发上也要考虑这个问题
https://stackoverflow.com/questions/22505191
复制相似问题