一种基于优先级队列的进程间通信方法及装置与流程

文档序号:12747868阅读:266来源:国知局
一种基于优先级队列的进程间通信方法及装置与流程

本发明涉及网络通信技术领域,尤其涉及一种基于优先级队列的进程间通信方法及装置。



背景技术:

嵌入式系统中,经常会有进程之间的通信,通常为了便于管理,进程之间的通信方法的固定的,比如使用tipc的方法或者socket的方法。使用一个固定的方法就好像进程之间只有一个通道一样,进程只能通过该通道进行通信,而不能使用其他通道。

这种仅使用一个通道的方法带来了简单、易于管理的好处,但是也带来的一些问题,当进程之间的通信比较多的时候,可能会有少数的几个重要消息被淹没在大量的不是很重要的消息之中,导致这几个少数的重要消息得不到及时处理。



技术实现要素:

基于上述问题,本发明提供一种基于优先级队列的进程间通信方法及装置,在不改变进程之间通信方式的基础上,使得高优先级的消息能够被及时发送出去并得到及时处理的目的。

为解决上述问题,本发明提供了一种基于优先级队列的进程间通信方法,所述通信方法包括:

接收具有不同优先级的消息队列中的消息;

根据每个消息队列的优先级,将接收到的消息根据所在消息队列的优先级的高低依次进行发送。

其中,根据每个消息队列的优先级,将接收到的消息根据所在消息队列的优先级的高低依次进行发送,具体包括:

检测优先级最高的消息队列中是否有消息;

是,则处理优先级最高的消息队列中的消息;

否则检测下一个优先级队列中是否有消息。

其中,所述方法还包括:

处理完当前消息后,返回检测优先级最高的消息队列中是否有消息;

是,则处理优先级最高的消息队列中的消息;

否则检测下一个优先级队列中是否有消息。

其中,当检测到最高优先级的消息队列中具有多个消息时,根据接收消息的先后顺序进行处理。

根据本发明的另一个方面,提供一种基于优先级队列的进程间通信装置,包括:

接收模块,接收具有不同优先级的消息队列中的消息;

判断模块,用于判断每个优先级的消息队列中是否有消息;

消息处理模块模块,用于根据每个消息队列的优先级,将接收到的消息根据所在消息队列的优先级的高低依次进行发送。

其中,所述消息处理模块具体包括:

优先级识别单元,用于识别每个消息队列的优先级;

检测单元,用于识别每个优先级队列中是否有消息;

处理单元,用于根据消息队列的优先级处理消息。

本发明的基于优先级队列的进程间通信方法及装置,在不改变进程之间通信方式的基础上,使得高优先级的消息能够被及时发送出去并得到及时处理的目的。

附图说明

图1示出了本发明的基于优先级队列的进程间通信方法的流程图。

图2示出了本发明的基于优先级队列的进程间通信装置的结构框图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

图1示出了本发明的基于优先级队列的进程间通信方法的流程图。

如图1所示,本发明一个实施例中提供了一种基于优先级队列的进程间通信方法,具体包括:

S1、接收具有不同优先级的消息队列中的消息;

S2、根据每个消息队列的优先级,将接收到的消息根据所在消息队列的优先级的高低依次进行发送。

在进一步的实施例中,步骤S2可以具体包括:

检测优先级最高的消息队列中是否有消息;

是,则处理优先级最高的消息队列中的消息;

否则检测下一个优先级队列中是否有消息。

此外,当处理完当前的消息后,在处理下一个消息之前,返回检测优先级最高的消息队列中是否有消息,有则处理优先级最高的消息队列中的消息;否则检测下一个优先级队列中是否有消息。即每次处理完成当前消息后,都按照优先级对消息队列进行检测,以使得每次处理的消息都是当前状态下优先级最高的消息。

此外,当检测到最高优先级的消息队列中具有多个消息时,则根据接收消息的先后顺序进行处理。

本实施例中,在不改变现有进程之间通信方式的基础上,建立优先级队列,在每次处理消息时,根据优先级的高低检测每个消息队列中是否有消息,然后处理优先级最高的队列中的消息,从而使得高优先级的消息能够被及时发送出去并得到及时处理的目的。

以下通过具体实施例详细说明本发明的基于优先级队列的进程间通信方法。

本实施例以建立的三个优先级队列为例,即高、中、低三个优先级队列进行通信为例,其具体过程为:

1)检测高优先级队列是否有消息,如果有消息则处理消息,直到没有消息为止。

2)如果检测到高优先级队列没有消息,则检测中优先级队列中是否有消息,有则处理中优先级队列中的一个消息,处理完成后,返回步骤1),检测高优先级队列是否有消息。

3)如果检测到高优先级和中优先级队列中都没有消息,则检测低优先级队列中是否有消息,有则处理低优先级中的一个消息,处理完成后,返回步骤1),检测高优先级队列中是否有消息。

本发明的实施例中,在进行消息处理时,首先检测并处理优先级最高的队列中的消息,然后在处理低于最高优先级的队列的消息时,在每处理完成一个消息后,都需要再次按照优先级顺序对高于该优先级的队列进行检测,当检测到有消息需要传输后,则处理优先级最高的消息。

图2示出了本发明的基于优先级队列的进程间通信装置的结构框图。

本发明的另一个实施例中,如图2所示,提供一种基于优先级队列的进程间通信装置,所述装置包括:

接收模块10,用于接收具有不同优先级的消息队列中的消息;

判断模块20,用于判断每个优先级的消息队列中是否有消息;

消息处理模块30,用于根据每个消息队列的优先级,将接收到的消息根据所在消息队列的优先级的高低依次进行发送。

其中,消息处理模块30具体包括:

优先级识别单元,用于识别每个消息队列的优先级;

检测单元,用于识别每个优先级队列中是否有消息;

处理单元,用于根据消息队列的优先级处理消息。

本发明的基于优先级队列的进程间通信方法及装置,在不改变进程之间通信方式的基础上,使得高优先级的消息能够被及时发送出去并得到及时处理的目的。

以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

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