一种消息处理方法、装置、电子设备及存储介质与流程

文档序号:36896049发布日期:2024-02-02 21:27阅读:15来源:国知局
一种消息处理方法、装置、电子设备及存储介质与流程

本技术涉及计算机,特别涉及一种消息处理方法、装置、电子设备及存储介质。


背景技术:

1、在操作系统中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有计算机程序都是消息驱动的。应用于计算机程序的消息处理机制包括是轮询机制和事件驱动机制。

2、开启轮询机制时,程序会以一定的频率不断地去检查是否有新的输入或事件发生,如果有就进行相应的处理。这种机制的优点是消息处理过程更容易由用户控制,可以将线程与cpu(central processing unit,中央处理器)核进行亲和性绑定并设置极低的轮询时间间隔来提高消息处理性能,达到消息处理低时延的要求;缺点是可能会浪费一些cpu资源,因为即使没有新的消息或数据需要处理,程序仍然会继续轮询。

3、开启事件驱动机制时,程序会注册一个回调函数,该函数将在底层系统有新的消息或数据需要处理时被调用。这种机制的优点是比轮询更加节约中央处理器的资源,因为消息处理线程只在有新的消息到达时才会被唤醒;缺点是处理过程由操作系统底层控制,会带来不可控的消息处理时延。


技术实现思路

1、为了解决现有技术的问题,本技术实施例提供了一种消息处理方法、装置、电子设备及存储介质。所述技术方案如下:

2、一方面,提供了一种消息处理方法,所述方法包括:

3、在目标消息处理线程处于工作状态的情况下,基于所述目标消息处理线程按照预设时间间隔向消息接收系统发送待处理消息获取请求,以使得所述消息接收系统返回待处理消息获取结果;

4、在连续接收到预设数量的第一待处理消息获取结果的情况下,开启所述消息接收系统的事件驱动机制,并注册目标回调函数,同时调整所述目标消息处理线程进入休眠状态;所述第一待处理消息获取结果指示当前没有待处理消息,所述目标回调函数在所述消息接收系统发送第一消息处理请求的同时被所述消息接收系统调用,所述第一消息处理请求指示所述消息接收系统当前接收到的待处理消息;

5、响应于对所述目标回调函数的调用,关闭所述消息接收系统的事件驱动机制,并调整所述目标消息处理线程进入所述工作状态,基于所述目标消息处理线程处理所述第一消息处理请求所指示的待处理消息。

6、另一方面,提供了一种消息处理装置,所述装置包括:

7、消息请求模块,用于在目标消息处理线程处于工作状态的情况下,基于所述目标消息处理线程按照预设时间间隔向消息接收系统发送待处理消息获取请求,以使得所述消息接收系统返回待处理消息获取结果;

8、机制切换模块,用于在连续接收到预设数量的第一待处理消息获取结果的情况下,开启所述消息接收系统的事件驱动机制,并注册目标回调函数,同时调整所述目标消息处理线程进入休眠状态;所述第一待处理消息获取结果指示当前没有待处理消息,所述目标回调函数在所述消息接收系统发送第一消息处理请求的同时被所述消息接收系统调用,所述第一消息处理请求指示所述消息接收系统当前接收到的待处理消息;

9、第一消息处理模块,用于响应于对所述目标回调函数的调用,关闭所述消息接收系统的事件驱动机制,并调整所述目标消息处理线程进入所述工作状态,基于所述目标消息处理线程处理所述第一消息处理请求所指示的待处理消息。

10、在一个示例性的实施方式中,所述装置还包括用于对于不同的待处理消息获取结果做出不同处理的第一处理模块,所述第一处理模块,包括:

11、第一判断模块,用于基于所述目标消息处理线程判断所述待处理消息获取结果是否属于所述第一待处理消息获取结果;

12、数量确定模块,用于在所述待处理消息获取结果属于所述第一待处理消息获取结果的情况下,确定连续接收到的所述第一待处理消息获取结果的数量。

13、在一个示例性的实施方式中,所述装置还包括用于对于不同的待处理消息获取结果做出不同处理的第二处理模块,所述第二处理模块,包括:

14、第二判断模块,用于在所述待处理消息获取结果不属于所述第一待处理消息获取结果的情况下,基于所述目标消息处理线程判断所述待处理消息获取结果是否属于第二待处理消息获取结果;所述第二待处理消息获取结果指示当前待处理消息;

15、第二消息处理模块,用于在所述待处理消息获取结果属于所述第二待处理消息获取结果的情况下,基于所述目标消息处理线程处理所述第二待处理消息获取结果所指示的当前待处理消息。

16、在一个示例性的实施方式中,所述装置还包括用于进行轮询前的准备步骤的消息处理前模块,所述消息处理前模块,包括:

17、线程创建模块,用于响应于用户发送的第二消息处理请求,创建所述目标消息处理线程;

18、轮询开始模块,用于开启轮询机制,并控制所述目标消息处理线程进入所述工作状态。

19、在一个示例性的实施方式中,所述装置还包括用于切换消息处理机制的消息机制模块,所述消息机制模块,包括:

20、轮询关闭模块,用于在所述开启所述消息接收系统的事件驱动机制之前,关闭所述轮询机制;

21、轮询开启模块,用于在所述关闭所述消息接收系统的事件驱动机制之后,开启所述轮询机制。

22、在一个示例性的实施方式中,所述机制切换模块,包括:

23、存在判断模块,用于若不存在所述目标回调函数,则注册所述目标回调函数;

24、指针发送模块,用于向所述消息接收系统发送所述目标回调函数的函数指针,以使得所述消息接收系统在发送所述第一消息处理请求时基于所述目标回调函数的函数指针调用所述目标回调函数。

25、另一方面,提供了一种电子设备,包括处理器和存储器,所述存储器中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由所述处理器加载并执行以实现上述任一方面的消息处理方法。

26、另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由处理器加载并执行以实现如上述任一方面的消息处理方法。

27、另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述任一方面的消息处理方法。

28、本技术实施例通过在目标消息处理线程处于工作状态的情况下,基于目标消息处理线程按照预设时间间隔向消息接收系统发送待处理消息获取请求,根据消息接收系统返回的待处理消息获取结果,调整处理消息的机制,在多次没有收到待处理消息时,调整目标消息处理线程进入休眠状态,停止发送待处理消息获取请求,等待消息接收系统发送第一消息处理请求,在接收到第一消息处理请求时,响应于对目标回调函数的调用,调整目标消息处理线程进入工作状态,继续按照预设时间间隔发送待处理消息获取请求。实现消息处理的低时延,同时降低了中央处理器的资源消耗。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1