水木社区手机版
首页
|版面-编程技术(Programming)|
新版wap站已上线
返回
1/1
|
转到
主题:各位精英码农,来出出主意
楼主
|
speedboy2998
|
2025-07-03 17:13:46
|
展开
一个很繁忙的系统中,10K-20K 用户,每个用户每隔一段时间比如(30秒,或者60秒)需要自动把自己状态改变为另外一个状态,误差不能大于2-3秒。
现在两个方案:
1. 每个用户一个 asio timer, 定时触发后检测时间,如果到了时间后,就改变状态
2. 单独用一个线程对这些用户定时遍历检测时间,然后改变转台
3. 对这些用户分组,一组一个 asio t imer,比如1000个用户一组。
感觉第三个方案嘴合适?
--
FROM 218.76.62.*
3楼
|
speedboy2998
|
2025-07-04 12:04:03
|
展开
主贴没有说得很清楚,这些用户时刻都在被其他很多线程用读锁查询他们的状态,不能长时间锁定。
我最终采取的方案是单独一个线程用读写锁。
用读锁遍历,需要更改状态的时候就升级为写锁。。
【 在 z16166 的大作中提到: 】
: 非精英,瞎参和一下。这个要求好像比游戏服务器里刷新一个地图里所有怪的状态低一些
: chatgpt把你的第三种称为sharding 。
: 但它给出了第四种:
: ...................
--
FROM 218.76.62.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版