Chinaunix

标题: Linux下的多线程调度性能上限,有人实践过上千线程吗? [打印本页]

作者: abcbuzhiming    时间: 2014-04-20 11:05
标题: Linux下的多线程调度性能上限,有人实践过上千线程吗?
我自己写了一个棋牌网游的服务器端,目前的方式是用一个类(对象)保存每个房间的状态,然后用线程定时去查看超时,或处理用户动作。但是在具体的实现模型上,我拿不定该选下面的哪种方式,第一种就是单个线程逐个去遍历每个房间;第二种方式就是每个房间拥有独立的一个线程。听说线程这东西也不是越多越好,调度和上下文切换会让多线程的效率急剧下降。所以我拿不定到底使用哪种模型,单线程那种也要面对的问题就是房间里的很多行为处理是要涉及到数据库的,虽然单个房间的业务逻辑消耗的时间很短,但是上千的房间会轻易的把这个数字累积到2-3秒。不知道和上千的线程比起来,哪个效率高
作者: timespace    时间: 2014-04-20 14:45
你都说了,上千线程有效率和扩展性问题,自己模拟看看。通常来说没必要搞那么线程,如果业务逻辑很少,可以让若干线程处理数据库请求,某个线程专门处理业务逻辑。
作者: linux_c_py_php    时间: 2014-04-21 10:06
设计太糟糕了, 设计一定要分层, 网络层, 逻辑层, 持久化访问层.
作者: abcbuzhiming    时间: 2014-04-21 16:10
linux_c_py_php 发表于 2014-04-21 10:06
设计太糟糕了, 设计一定要分层, 网络层, 逻辑层, 持久化访问层.


请问有什么设计针对房间类型网游的结构,你用什么去维护房间的状态和响应房间内玩家的请求
作者: arserangel    时间: 2014-04-21 16:26
数千个,太少了吧。。。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2