游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1965|回复: 4

请教一个关于服务器逻辑线程处理消息的问题。。

[复制链接]

3

主题

10

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2011-5-25 13:46:00 | 显示全部楼层 |阅读模式
游戏服务器中,逻辑线程从队列中取到消息包,而这个消息包中有读操作,一般游戏服务器是怎么处理这样的消息逻辑的,流程是怎么样的?

3

主题

10

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2011-5-26 11:11:00 | 显示全部楼层

Re:请教一个关于服务器逻辑线程处理消息的问题。。

我顶

3

主题

10

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2011-5-26 13:00:00 | 显示全部楼层

Re:请教一个关于服务器逻辑线程处理消息的问题。。

上面没把问题表达清楚,下面我补充一下。
这个消包有读的操作,比如读数据库,这个消息包所要处理的逻辑依赖于这个从数据库中读出的数据。

那么一般就要求数据库操作线程去读这个数据,因为使用的是非阻塞模式,这时这个消息的逻辑处理就断掉了。

可能要在N个主循环后这个数据才读到,这时数据虽然读到了,但我怎么去进行读到数据之后,下面的处理逻辑(这问题在单线程时就不是问题了),因为我可能不知道这个数据是那个时候,那个消息要求去读的。

-------------------------------------------------

上面的情景是举例,实际如果只有简单的一两条读操作,我还是可以保证他执行正确的。
但实际情况中,一个逻辑里可能有非常多非即时性的读操作的,而且这些数据有对上下文的依赖关系。
我想问的就是,现在的网络游戏中这一块的处理方式,我想是不是有一种统一的架构,可以让我们在写逻辑时,不用去考虑这些异步问题。

-------------------------------------------------

我现在想到的方法是,一条消息过来后,我会建立一个状态机,这个状态机保存着这个逻辑所需要的数据和有需要用到的上下文环境,及这个逻辑所处于的状态,直到这个逻辑完全执行完后删除。

49

主题

475

帖子

475

积分

中级会员

Rank: 3Rank: 3

积分
475
发表于 2011-5-26 15:39:00 | 显示全部楼层

Re:请教一个关于服务器逻辑线程处理消息的问题。。

情况如何了?

3

主题

10

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2011-6-1 12:38:00 | 显示全部楼层

Re:请教一个关于服务器逻辑线程处理消息的问题。。

我顶啊顶啊顶一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-10 16:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表