酷Q社区»社区 分享交流区 编程技术

关于消息线程探讨[复制链接]

作者: 取名非公开|查看: 334|回复: 14
跳转到指定楼层
2-10 11:13

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
TIM图片20190210104609.png


1、在上图中,我画线部分,我是否可以理解,当每收到消息  自动创建一条线程,处理這个消息?
2、如果一条消息自动创建一条线程,如果前的线程还没处理完,后面的消息会不会把fromGroup、fromQQ、msg从新覆盖?
不会,能问这种问题,少年你真的懂线程吗
我对线程理解比较浅,那么问题一呢? 详情回复 发表于 2-10 13:42
这种情况不会发生
我对线程理解比较浅,那么问题一呢? 详情回复 发表于 2-10 13:42
gjf8512 发表于 2019-2-10 11:56
不会,能问这种问题,少年你真的懂线程吗

我对线程理解比较浅,那么问题一呢?
66492422 发表于 2019-2-10 12:04
这种情况不会发生

我对线程理解比较浅,那么问题一呢?
第一个是这样的, 详情回复 发表于 2-10 17:24
覆盖也是在新的线程,对于之前的线程没有影响,如果有影响那还要多线程干啥
举个例子  你有十个员工  同时给十个客服去拿他要的商品   商品名字都是不一样的  但是每个员工只拿自己对应的东西

被感谢 2

非常感谢,這个举例太贴切了~~ 详情回复 发表于 2-10 17:56
一切的根源——自己试试呗
取名非公开 发表于 2019-2-10 13:42
我对线程理解比较浅,那么问题一呢?

第一个是这样的,
l7782053 发表于 2019-2-10 16:20
举个例子  你有十个员工  同时给十个客服去拿他要的商品   商品名字都是不一样的  但是每个员工只拿自己对 ...

非常感谢,這个举例太贴切了~~
表示,不是太理解。
酷QSDK 给的群消息事件,不就能直接监测消息吗?
为什么要每一条消息,开一个线程?
我刚来酷Q社区当作者,不是很懂。。
在我看来,"监测消息"是一种高度抽象的编程概念,没有定义采用何种方式具体实现. 实际上,酷Q有一个消息线程池(大概备有50条线程),每一条消息分配给一条消息线程;此后,这条消息线程进入工作状态,将带着这条消息 详情回复 发表于 2-11 11:53
本帖最后由 一年又一年 于 2019-2-11 11:57 编辑
CarolTel 发表于 2019-2-11 09:46
表示,不是太理解。
酷QSDK 给的群消息事件,不就能直接监测消息吗?
为什么要每一条消息,开一个线 ...

在我看来,"监测消息"是一种高度抽象的编程概念,没有定义采用何种方式具体实现.

实际上,酷Q有一个消息线程池(大概备有50条线程),每一条消息分配给一条消息线程;此后,这条消息线程进入工作状态,将带着这条消息顺序调用所有(监听该类型消息的)应用事件处理函数;全部调用完后,线程回到空闲状态,等待之后被复用.

酷Q的应用机制要求,对于某个给定的消息,各个应用事件处理函数是按照优先级顺序,按顺序(排队)接收到这条消息的;也就是说,在上一个应用事件处理函数在被调用后,只有当它返回以让酷Q知晓后,酷Q才方能将该消息递给下一个事件处理函数,否则酷Q将等待上一个事件处理函数返回.

每一条消息分配给一条线程,好处在于若 先到达的消息 (或许是因为意外,或许是因为其他原因,而导致)在某一应用事件函数逗留的时间过长(处理耗时过长,迟迟没有返回,以至于)酷Q必须等待继续其返回(被堵塞);而此时,又有一条消息达到(称该消息为 后到达的消息),后达到消息 可以不受 先到达的消息 被堵塞的影响,另起炉灶(在另外一个线程里)顺序投递消息给各个应用事件处理函数.
感谢,感谢。 加一下QQ吧,想交个朋友 详情回复 发表于 2-11 12:02
一年又一年 发表于 2019-2-11 11:53
在我看来,"监测消息"是一种高度抽象的编程概念,没有定义采用何种方式具体实现.

实际上,酷Q有一个消息 ...

感谢,感谢。
加一下QQ吧,想交个朋友
感谢分享
感谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则尽量使你的回复能够对他人有所帮助

Powered by Discuz!Designed by hexapp© 2019 CoolQ

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