首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择同步还是异步?

选择同步还是异步?
EN

Stack Overflow用户
提问于 2014-03-19 12:01:22
回答 1查看 716关注 0票数 1

我正在开发一个多人游戏,我想把两个不认识的玩家与数据库中的研究联系起来。所以我想要这样做:

  • 玩家想要与一个随机的对手点击我的应用程序按钮。
  • 当按下按钮时,我在我的“randomPlayers”表中的数据库中控制,如果有人要玩的话
  • 如果没有存储在表中的播放器,我就将昵称放在数据库中,等待想要玩的人
  • 相反,如果有人存储在数据库中,我就取第一个昵称(按时间戳排序),然后使用它。

我的问题是:我怎么能确定在同一时刻搜索一个随机玩家的两个玩家会选择两个不同的球员,而不是相同的,因为选择返回相同的球员?换句话说,选择同步还是异步?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-19 12:31:44

我希望你做的是3层设计,而不是2层。例如,程序是否连接到中间连接到数据库(3层)的服务器,还是程序直接连接到数据库(2层)?

如果是2层,您可能必须将select封装在某种事务中,该事务可以抓取播放机并更新表,这样第二个请求就不会抢占同一个播放器。附带注意,您可能需要考虑切换到3层设计,以便更好地管理用户可以和不能对数据库所做的事情。

如果是3层,您可能可以通过使用您所使用的语言提供的某种锁定系统来在中间构建服务器,从而避免这一切。大多数现代编程语言现在都提供了一些语法,允许您指定一次只能运行一个给定的代码段,从而允许您管理这类并发问题。

MySQL并发上也要考虑这个问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22505191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档