掌桥专利:专业的专利平台
掌桥专利
首页

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

文献发布时间:2024-04-18 19:59:31


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

技术领域

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

背景技术

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

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

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

发明内容

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种消息处理方法的流程示意图;

图2是本申请实施例提供的对待处理消息获取结果分类别处理的流程示意图;

图3是本申请实施例提供的一种消息接收系统与消息处理系统之间的交互图;

图4是本申请实施例提供的另一种消息接收系统与消息处理系统之间的交互图;

图5是本申请实施例提供的一种消息处理装置的结构框图;

图6是本申请实施例提供的一种电子设备的硬件结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

可以理解的是,在本申请的具体实施方式中,涉及到用户信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

请参阅图1,其所示为本申请实施例提供的一种消息处理方法的流程示意图。需要说明的是,本说明书提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图1所示,该方法可以包括:

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

其中,目标消息处理线程为消息处理系统创建的线程,用于处理消息处理系统与消息接收系统之间的交互以及处理待处理消息。具体的,目标消息处理线程用于向消息接收系统发出待处理消息获取请求,处理消息接收系统返回的待处理消息获取结果,以及处理接收到的待处理消息。具体实施中,可以创建多个目标消息处理线程,并行处理消息,以提高消息处理系统处理消息的性能。

其中,预设时间间隔为目标消息处理线程向消息接收系统发送待处理消息获取请求的时间间隔,可以通过设置极低的预设时间间隔来实现消息处理系统处理消息的低时延。

其中,消息接收系统用于接收待处理消息并将待处理消息返回至消息处理系统。具体的,消息接收系统将接收到的待处理消息存放至消息队列,在接收到消息处理系统发送的待处理消息获取请求时,读取消息队列中的消息返回给消息处理系统;在消息接收系统开启事件驱动机制时,在接收到待处理消息时,将待处理消息返回给消息处理系统,以使得消息处理系统处理该待处理消息。

其中,待处理消息获取请求是消息处理系统向消息接收系统发出的请求,旨在获取消息接收系统的消息队列中的待处理消息。

其中,待处理消息获取结果是消息接收系统对待处理消息获取请求的回复,由消息接收系统返回给消息处理系统。具体的,在消息队列中存在待处理消息时,消息接收系统返回给消息处理系统的待处理消息获取结果指示待处理消息;在消息队列中不存在待处理消息时,消息接收系统返回给消息处理系统的待处理消息获取结果指示当前没有待处理消息。

在一个示例性的实施方式中,上述步骤S101之前,可以包括以下步骤:

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

开启轮询机制,并控制目标消息处理线程进入工作状态。

其中,第二消息处理请求是由用户唤醒消息处理系统而触发的。具体的,第二消息处理请求不指示待处理消息,而是唤醒消息处理系统,以使得消息处理系统基于轮询机制或者事件驱动机制处理消息。

其中,目标消息处理线程为用户基于消息处理系统创建的线程,用于处理消息处理系统与消息接收系统之间的交互以及处理待处理消息。具体的,目标消息处理线程用于向消息接收系统发出待处理消息获取请求,处理消息接收系统返回的待处理消息获取结果,以及处理接收到的待处理消息。具体实施中,可以创建多个目标消息处理线程,并行处理消息,以提高消息处理系统处理消息的性能。

其中,轮询机制为一种消息处理机制。具体的,开启消息处理系统的轮询机制后,消息处理系统基于目标消息处理线程按照预设时间间隔向消息接收系统发送待处理消息获取请求。

具体的,由用户自己创建目标消息处理线程以及决定轮询的预设时间间隔,通过将目标消息处理线程与CPU核进行亲和性绑定,并设置极低的预设时间间隔来提高消息处理性能,达到消息处理低时延的要求,以避免消息处理过程由操作系统底层控制,造成频繁的线程调度,带来不可控的消息处理时延。

由本申请实施例的上述技术方案可见,本申请实施例通过由用户唤醒消息处理系统,并创建线程,开启轮询机制处理消息,将处理消息的主动权交由用户,以达到消息处理低时延的要求。

在一个示例性的实施方式中,如图2所示,为本申请实施例提供的对待处理消息获取结果分类别处理的流程示意图,上述步骤S101之后,可以包括:

S201,基于目标消息处理线程判断待处理消息获取结果是否属于第一待处理消息获取结果。

具体的,若判断的结果为是,则可以执行步骤S203;反之,若判断的结果为否,则可以执行步骤S205。

其中,目标消息处理线程为消息处理系统创建的线程,用于处理消息处理系统与消息接收系统之间的交互以及处理待处理消息。具体的,目标消息处理线程用于向消息接收系统发出待处理消息获取请求,处理消息接收系统返回的待处理消息获取结果,以及处理接收到的待处理消息。具体实施中,可以创建多个目标消息处理线程,并行处理消息,以提高消息处理系统处理消息的性能。

其中,待处理消息获取结果是消息接收系统对待处理消息获取请求的回复,由消息接收系统返回给消息处理系统。具体的,在消息队列中存在待处理消息时,消息接收系统返回给消息处理系统的待处理消息获取结果指示待处理消息;在消息队列中不存在待处理消息时,消息接收系统返回给消息处理系统的待处理消息获取结果指示当前没有待处理消息。

其中,第一待处理消息获取结果指示当前没有待处理消息。

具体实施中,若待处理消息获取结果属于第一待处理消息获取结果,即当前没有待处理消息,则确定连续接收到的第一待处理消息获取结果的数量,以在该数量达到预设数量时,切换消息处理的机制;若待处理消息获取结果不属于第一待处理消息获取结果,则继续判断待处理消息获取结果是否属于第二待处理消息获取结果,以确定当前是否存在待处理消息。

S203,确定连续接收到的第一待处理消息获取结果的数量。

具体的,在连续接收到的第一待处理消息获取结果的数量达到预设数量的情况下,继续执行步骤S103;在连续接收到的第一待处理消息获取结果的数量未达到预设数量的情况下,继续执行步骤S101。

具体实施中,若连续没有获取到当前待处理消息的次数达到预设数量,则切换至事件驱动机制以处理消息,若连续没有获取到当前待处理消息的次数未达到预设数量,则继续向消息接收系统发送待处理消息获取请求。

S205,基于目标消息处理线程判断待处理消息获取结果是否属于第二待处理消息获取结果。

具体的,若判断的结果为是,则可以执行步骤S207;反之,若判断的结果为否,则可以执行步骤S101。

其中,第二待处理消息获取结果指示当前待处理消息。

具体实施中,在待处理消息获取结果属于第二待处理消息获取结果的情况下,基于目标消息处理线程处理第二待处理消息获取结果所指示的当前待处理消息;在待处理消息获取结果不属于第二待处理消息获取结果的情况下,待处理消息获取结果也不属于第一待处理消息获取结果,消息接收系统返回的待处理消息获取结果可能为异常数据,这里不做处理,继续基于目标消息处理线程向消息接收系统发送待处理消息获取请求。

S207,基于目标消息处理线程处理第二待处理消息获取结果所指示的当前待处理消息。

具体的,继续执行步骤S101。

具体实施中,若待处理消息获取结果属于第二待处理消息获取结果,即当前存在待处理消息,则基于目标消息处理线程处理第二待处理消息获取结果所指示的当前待处理消息,而后继续基于目标消息处理线程向消息接收系统发送待处理消息获取请求。

由本申请实施例的上述技术方案可见,本申请实施例通过待处理消息获取结果所指示的当前是否存在待处理消息,而确定是否切换消息处理机制,实现自适应的消息处理机制的切换,从而兼顾节约中央处理器的资源和降低消息处理时延的要求。

S103,在连续接收到预设数量的第一待处理消息获取结果的情况下,开启消息接收系统的事件驱动机制,并注册目标回调函数,同时调整目标消息处理线程进入休眠状态。

其中,预设数量为开启事件驱动机制的临界值。具体的,消息接收系统返回的待处理消息获取结果指示当前没有待处理消息,这种情况连续发生的次数达到预设数量时,切换消息处理机制,具体为切换至事件驱动机制。

其中,第一待处理消息获取结果指示当前没有待处理消息。

其中,事件驱动机制为一种消息处理机制。具体的,开启消息接收系统的事件驱动机制后,消息处理系统停止向消息接收系统发送待处理消息获取请求,消息接收系统接收到新的待处理消息后,基于该待处理消息向消息处理系统发送第一消息处理请求,消息处理系统处理该待处理消息。

其中,目标回调函数是消息处理系统注册的,以供消息接收系统调用的回调函数,在消息接收系统发送第一消息处理请求的同时被消息接收系统调用。具体的,目标回调函数用于关闭消息接收系统的事件驱动机制,并调整目标消息处理线程进入所述工作状态,以使得消息处理系统基于目标消息处理线程继续按照预设时间间隔向消息接收系统发送待处理消息获取请求。

其中,第一消息处理请求指示消息接收系统当前接收到的待处理消息。

其中,休眠状态为目标消息处理线程的一种状态,在该状态下目标消息处理线程不会占用中央处理器的资源。

在一个示例性的实施方式中,上述步骤S103中注册目标回调函数的过程,可以包括以下步骤:

若不存在目标回调函数,则注册目标回调函数;

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

其中,目标回调函数是消息处理系统注册的,以供消息接收系统调用的回调函数,在消息接收系统发送第一消息处理请求的同时被消息接收系统调用。具体的,目标回调函数用于关闭消息接收系统的事件驱动机制,并调整目标消息处理线程进入所述工作状态,以使得消息处理系统基于目标消息处理线程继续按照预设时间间隔向消息接收系统发送待处理消息获取请求。

其中,消息接收系统用于接收待处理消息并将待处理消息返回至消息处理系统。具体的,消息接收系统将接收到的待处理消息存放至消息队列,在接收到消息处理系统发送的待处理消息获取请求时,读取消息队列中的消息返回给消息处理系统;在消息接收系统开启事件驱动机制时,在接收到待处理消息时,将待处理消息返回给消息处理系统,以使得消息处理系统处理该待处理消息。

其中,第一消息处理请求指示消息接收系统当前接收到的待处理消息。

具体的,在不存在目标回调函数的情况下,消息处理系统处理目标回调函数,并将目标回调函数的函数指针发送给消息接收系统,在消息接收系统接收到新的待处理消息时,基于该函数指针调用目标回调函数,以关闭消息接收系统的事件驱动机制,并调整目标消息处理线程进入工作状态;若已存在目标回调函数,则无需重复注册目标回调函数,在消息接收系统接收到新的待处理消息时,直接调用该目标回调函数。

由本申请实施例的上述技术方案可见,本申请实施例通过在注册目标回调函数前判断是否已存在目标回调函数,避免重复注册目标回调函数,造成计算资源的浪费。

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

具体的,继续执行步骤S101。

具体实施中,开启消息接收系统的事件驱动机制后,消息接收系统接收到新的待处理消息时,消息接收系统基于该待处理消息向消息处理系统发送第一消息处理请求,并调用目标回调函数,以关闭消息接收系统的事件驱动机制,并调整目标消息处理线程进入所述工作状态,以使得消息处理系统基于目标消息处理线程继续按照预设时间间隔向消息接收系统发送待处理消息获取请求。

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

在一个示例性的实施方式中,参考图3和图4,其所示为本申请实施例提供的一种消息接收系统与消息处理系统之间的交互图,以及本申请实施例提供的另一种消息接收系统与消息处理系统之间的交互图,上述步骤S103中开启消息接收系统的事件驱动机制之前,可以包括以下步骤:

关闭轮询机制。

上述步骤S105中关闭消息接收系统的事件驱动机制之后,可以包括以下步骤:

开启轮询机制。

其中,轮询机制为一种消息处理机制。具体的,开启消息处理系统的轮询机制后,消息处理系统基于目标消息处理线程按照预设时间间隔向消息接收系统发送待处理消息获取请求。

其中,事件驱动机制为一种消息处理机制。具体的,开启消息接收系统的事件驱动机制后,消息处理系统停止向消息接收系统发送待处理消息获取请求,消息接收系统接收到新的待处理消息后,基于该待处理消息向消息处理系统发送第一消息处理请求,消息处理系统处理该待处理消息。

具体的,开启消息处理系统的轮询机制,创建目标消息处理线程,调整目标消息处理线程进入工作状态,消息处理系统基于目标消息处理线程按照预设时间间隔向消息接收系统发送待处理消息获取请求,消息接收系统返回待处理消息获取结果,在连续接收到的指示当前没有待处理消息的待处理消息获取结果的数量达到预设数量的情况下,关闭轮询机制,调整目标消息处理线程进入休眠状态,停止向消息接收系统发送待处理消息获取请求,开启消息接收系统的事件驱动机制,在消息接收系统接收到新的待处理消息时,关闭事件驱动机制,开启消息处理系统的轮询机制,调整目标消息处理线程进入工作状态,消息处理系统基于目标消息处理线程处理该待处理消息,并继续按照预设时间间隔向消息接收系统发送待处理消息获取请求。

由本申请实施例的上述技术方案可见,本申请实施例通过在低时延的轮询机制与低资源消耗的事件驱动机制之间切换,从而兼顾节约中央处理器的资源和降低消息处理时延的消息处理要求。

与上述几种实施例提供的消息处理方法相对应,本申请实施例还提供一种消息处理装置,由于本申请实施例提供的消息处理装置与上述几种实施例提供的消息处理方法相对应,因此前述消息处理方法的实施方式也适用于本实施例提供的消息处理装置,在本实施例中不再详细描述。

请参阅图5,其所示为本申请实施例提供的一种消息处理装置的结构示意图,该装置具有实现上述方法实施例中消息处理方法的功能,该功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图5所示,该装置可以包括:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

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

存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。

本申请实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行,即上述电子设备可以包括计算机终端、服务器或者类似的运算装置。图6是本发明实施例提供的运行一种消息处理方法的计算机设备的硬件结构框图,如图6所示,该计算机设备的内部结构可包括但不限于:处理器、网络接口及存储器。其中,计算机设备内的处理器、网络接口及存储器可通过总线或其他方式连接,在本说明书实施例所示图6中以通过总线连接为例。

其中,处理器(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等)。存储器(Memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器可以是高速RAM存储设备,也可以是非不稳定的存储设备(non-volatile memory),例如至少一个磁盘存储设备;可选的还可以是至少一个位于远离前述处理器的存储装置。存储器提供存储空间,该存储空间存储了电子设备的操作系统,可包括但不限于:Windows系统(一种操作系统),Linux(一种操作系统),Android(安卓,一种移动操作系统)系统、IOS(一种移动操作系统)系统等等,本发明对此并不作限定;并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。在本说明书实施例中,处理器加载并执行存储器中存放的一条或一条以上指令,以实现上述方法实施例提供的消息处理方法。

本申请的实施例还提供了一种计算机可读存储介质,计算机可读存储介质可设置于电子设备之中以保存用于实现一种消息处理方法相关的至少一条指令或者至少一段程序,该至少一条指令或者该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的任意一种消息处理方法。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 基于热红外光谱技术对橄榄石成分进行分析的方法及应用
  • 一种基于近红外光谱分析技术的植物蛋白饮料中主要成分含量快速检测的方法
技术分类

06120116520294