首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多个用户同时可访问的线程安全集合

多个用户同时可访问的线程安全集合
EN

Stack Overflow用户
提问于 2012-11-04 22:39:44
回答 1查看 78关注 0票数 1

我正在开发多人游戏,我有一个在asp.net上编写的服务器。游戏用户发送请求到服务器,以找到一个操作系统,并加入某种战斗。for请求可以有一些参数,但也可能没有参数(估计它是最流行的场景),因此发送方应该连接到任何已经发送请求并等待连接的用户。

将所有等待请求存储在线程安全集合中是一个好主意吗?它总是包含相当多的元素(因为为战斗找到匹配非常快),然而,许多线程将尝试一次访问这个集合。为每个N请求创建不同的集合是个好主意吗?N的最佳尺寸是什么?或者其他的想法?我的关键问题是快速找到匹配,并且不会破坏服务器性能,即使当前连接的数量非常多。

UPD

我似乎没有很清楚地描述我的问题。所有的战斗信息-参与的用户,在战斗中的行动,胜利者等,都存储在数据库中。我需要的是处理加入战斗的请求(请求可能只包含发送者id和战斗过滤器)。通常,对手几乎会立即被发现,所以不需要存储请求数据(在找到匹配后应该删除它,并且所有的战斗数据都将存储在数据库中),但是,我必须准备好同时处理大量的请求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-04 22:46:19

如果不进入匹配播放器的条件,则在编写web应用程序时,不应将用户会话数据保存在内存中。您的web应用程序可以偶尔被回收,导致您的数据松散。

正如SLaks所说,您应该将这些数据存储在数据库中并从中进行选择。根据用户匹配逻辑,您应该考虑从这条基线优化性能。选择top n users,或者根据所需的条件创建查询。

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

https://stackoverflow.com/questions/13223696

复制
相关文章

相似问题

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