一种进程通信方法、系统、终端和存储介质与流程

文档序号:17988908发布日期:2019-06-22 00:37阅读:171来源:国知局
一种进程通信方法、系统、终端和存储介质与流程

本发明实施例涉及计算机技术,尤其涉及一种进程通信方法、系统、终端和存储介质。



背景技术:

随着计算机技术的发展,技术人员开发了越来越多的软件,以满足人们日益增长的需求。通常,软件是由多个进程组成的软件系统,并且这些进程之间通过频繁的通信进行协调工作。

目前,在某个进程需要将一些参数信息通知到其余多个进程时,往往采用广播消息的方式来实现进程间的通信。如图1所示,进程a通过采用广播消息方式将一些参数信息广播出去,进程b、进程c和进程d预先注册进程a的消息通道,以接收广播消息。当进程a的任何参数信息变化时,进程a将变化的参数信息广播给所有注册过的进程,以使进程b、进程c和进程d均可以获得变化后的参数信息。

然而,在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

当进程a需要广播多个参数信息时,比如参数1、参数2、参数3、参数4和参数5,而进程b仅需获得参数1,进程c仅需获得参数2和参数3,进程d仅需获得参数1和参数5等。此时若通过广播消息的方式进行通信,则进程b除了接收到自身所需的参数1之外,还会接收到进程a广播的其余不必要的参数信息,如参数2、参数3、参数4和参数5。可见,这些多余的消息通知大大增加了系统通讯负担,降低了系统运行效率。



技术实现要素:

本发明实施例提供了一种进程通信方法、系统、终端和存储介质,以避免进行多余的消息通知,从而减少通讯负担,提高运行效率。

第一方面,本发明实施例提供了一种进程通信方法,包括:

第一进程在检测到至少一个第一进程参数信息发生变化时,根据发生变化的第一进程参数信息对内存字典所存储的至少一个第二进程对应的第二进程参数信息进行遍历;

所述第一进程确定发生变化的第一进程参数信息对应的目标第二进程,并将变化后的第一进程参数信息发送至相应的目标第二进程中。

第二方面,本发明实施例还提供了一种进程通信系统,所述系统包括:第一进程和至少一个第二进程;

其中,所述第一进程用于:在检测到至少一个第一进程参数信息发生变化时,根据发生变化的第一进程参数信息对内存字典所存储的至少一个第二进程对应的第二进程参数信息进行遍历;确定发生变化的第一进程参数信息对应的目标第二进程,并将变化后的第一进程参数信息发送至相应的目标第二进程中。

第三方面,本发明实施例还提供了一种终端,所述终端包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的进程通信方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的进程通信方法。

本发明实施例通过预先将至少一个第二进程对应的第二进程参数信息存储至第一进程维护的内存字典中,第一进程负责检测系统中各个第一进程参数信息是否发生变化,并在检测到至少一个第一进程参数信息发生变化时,对内存字典中所存储的每个第二进程对应的第二进程参数信息进行遍历,确定发生变化的第一进程参数信息对应的目标第二进程,即发生变化的第一进程参数信息为目标第二进程所需的参数信息,从而可以将变化后的第一进程参数信息仅发送至对应的目标第二进程中,无需发送至其余第二进程中,从而可以避免系统中多余的消息通知,以及避免其余第二进程接收不必要的参数信息,进而减少了通讯负担,提高了系统的运行效率。

附图说明

图1是现有技术的一种进程通信方法的流程图;

图2是本发明实施例一提供的一种进程通信方法的流程图;

图3是本发明实施例二提供的一种进程通信方法的流程图;

图4是本发明实施例二提供的一种应用于移动c型臂软件系统中的进程通信方法的流程图;

图5是本发明实施例三提供的一种进程通信系统的结构示意图;

图6是本发明实施例四提供的一种终端的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图2为本发明实施例一提供的一种进程通信方法的流程图,本实施例可适用于软件系统中进程之间进行通信的情况,尤其可以用于医疗软件系统中进程间通信的情况,其中医疗软件系统可以为移动c型臂软件系统。该方法可以由进程通信系统来执行,该系统可以由软件和/或硬件的方式来实现,集成于可装载软件系统的终端中,比如电脑、个人笔记本、手机、游戏机等。如图2所示,该方法具体包括以下步骤:

s110、第一进程在检测到至少一个第一进程参数信息发生变化时,根据发生变化的第一进程参数信息对内存字典所存储的至少一个第二进程对应的第二进程参数信息进行遍历。

其中,第一进程可以是指用于负责监测整个系统中各个第一进程参数信息是否发生变化的进程。第一进程参数信息可以是指第一进程负责监测的整个系统中的各个参数信息。示例性地,第一进程参数信息可以是但不限于资源使用信息和/或系统状态信息,其中资源使用信息可以包括但不限于cpu(centralprocessingunit,中央处理器)利用率和/或磁盘空间等;系统状态信息可以包括但不限于网络连接状态信息等。

第二进程可以是指系统中用于接收第一进程发送的消息通知的进程,具体可以是指利用第二进程参数信息实现相应特定功能的进程。第二进程参数信息可以是指第二进程运行时所需的系统中的一个或多个第一进程参数信息。示例性地,假设第一进程a负责监测系统中的五个第一进程参数信息分别为:参数1、参数2、参数3、参数4和参数5,第二进程b运行时仅需要利用参数1和参数5,则第二进程b对应的第二进程参数信息为参数1和参数5,即参数1和参数5对第二进程b而言是必要的参数信息,参数2、参数3和参数4对第二进程b而言是不必要的参数信息。

内存字典可以是指第一进程中维护的一个线程安全的,用于存储一个或多个第二进程对应的第二进程参数信息的字典。本实施例中内存字典的数据存储类型可以是但不限于键值对类型,以便于数据的存储和查询。示例性地,内存字典可以用于存储至少一个第二进程对应的键值对信息,其中,键值对信息中的键信息为第二进程对应的字符串string类型的第二进程标识;键值对信息中的值信息为第二进程对应的集合list类型的第二进程参数信息。其中,第二进程标识可以由数字、字母、汉字、符号和图形中的至少一种组成,用于唯一标识第二进程,以便区分不同的第二进程。例如,内存字典可以定义为:concurrentdictionary<string,list<systemstatustype>>_registeredmap,其中,registeredmap为内存字典的名称,键信息string为string类型的第二进程标识;值信息list<systemstatustype>为由各个第二进程参数信息systemstatustype组成的集合。

具体地,本实施例可以预先将每个第二进程对应的第二进程参数信息存储至第一进程维护的内存字典中,以便于第一进程进行数据查询。第一进程可以实时检测或周期性地检测每个第一进程参数信息是否发生变化,并在检测到至少一个第一进程参数信息发生变化时,可以根据发生变化的每个第一进程参数信息对内存字典中存储的每个第二进程对应的各个第二进程参数信息进行遍历,也就是将发生变化的每个第一进程参数信息与内存字典中存储的每个第二进程参数信息进行参数匹配,以确定发生变化的第一进程参数信息与内存字典中的第二进程参数信息是否属于同一参数。

s120、第一进程确定发生变化的第一进程参数信息对应的目标第二进程,并将变化后的第一进程参数信息发送至相应的目标第二进程中。

其中,目标第二进程可以是指发生变化的第一进程参数信息为自身所需的参数信息时所对应的第二进程。本实施例中发生变化的第一进程参数信息可以为一个或多个。当存在多个发生变化的第一进程参数信息时,确定每个发生变化的第一进程参数信息对应的目标第二进程。

具体地,对于每个发生变化的第一进程参数信息而言,通过将发生变化的第一进程参数信息与内存字典中的各个第二进程参数信息进行参数匹配,确定发生变化的第一进程参数信息与内存字典中的第二进程参数信息是否属于同一参数,并根据匹配结果确定发生变化的第一进程参数信息对应的目标第二进程。例如,若内存字典中某个第二进程对应的某个第二进程参数信息与发生变化的第一进程参数信息属于同一参数,则表明匹配成功,即发生变化的第一进程参数信息为该第二进程所需的参数信息,此时可以将该第二进程确定为发生变化的第一进程参数信息对应的目标第二进程。同理,可以确定出发生变化的第一进程参数信息对应的一个或多个目标第二进程。

示例性地,若第一进程a负责监测系统中的五个第一进程参数信息分别为:参数1、参数2、参数3、参数4和参数5,第二进程b对应的第二进程参数信息为参数1和参数5,第二进程c对应的第二进程参数信息为参数1和参数4,则在第一进程a检测到参数1发生变化时,可以确定发生变化的参数1对应的目标第二进程为第二进程b和c;在第一进程a检测到参数5发生变化时,可以确定发生变化的参数1对应的目标第二进程仅为第二进程b。在第一进程a检测到参数1和参数5同时发生变化时,可以确定发生变化的参数1和参数5对应的目标第二进程均为第二进程b。

在确定发生变化的第一进程参数信息对应的目标第二进程之后,第一进程可以通过点对点的发送命令,将每个变化后的第一进程参数信息定点发送至对应的目标第二进程中,从而可以避免系统中多余的消息通知,以及避免其余第二进程接收不必要的参数信息,进而减少了通讯负担,提高了系统的运行效率。需要注意的是,本实施例中涉及的定点通信方式与现有技术中的定点通信方式不同,其区别在于:现有技术中的定点通信方式是基于第二进程对应的第二进程参数信息预先建立第一进程与第二进程之间的通信协议,使得第一进程基于该通信协议向第二进程发送消息通知。然而,当第二进程对应的第二进程参数信息因业务需求等原因发生变更时,第一进程基于预先建立的通信协议,也会存在向第二进程发送第二进程所不必要的参数信息的情况,从而也会导致多余的消息通知。而本实施例无需预先建立通信协议,只需根据第一进程维护的内存字典确定发生变化的第一进程参数信息对应的目标第二进程,并且内存字典中存储的可以是每个第二进程对应的当前第二进程参数信息,从而根据内存字典可以准确地确定出目标第二进程,以便将变化后的第一进程参数信息发送至对应的目标第二进程,从而可以进一步避免进行多余的消息通知。

本实施例的技术方案,通过预先将至少一个第二进程对应的第二进程参数信息存储至第一进程维护的内存字典中,第一进程负责检测系统中各个第一进程参数信息是否发生变化,并在检测到至少一个第一进程参数信息发生变化时,对内存字典中所存储的每个第二进程对应的第二进程参数信息进行遍历,确定发生变化的第一进程参数信息对应的目标第二进程,即发生变化的第一进程参数信息为目标第二进程所需的参数信息,从而可以将变化后的第一进程参数信息仅发送至对应的目标第二进程中,无需发送至其余第二进程中,从而可以避免系统中多余的消息通知,以及避免其余第二进程接收不必要的参数信息,进而减少了通讯负担,提高了系统的运行效率。

在上述技术方案的基础上,当内存字典用于存储每个第二进程对应的键值对信息时,s110中的“根据发生变化的第一进程参数信息对内存字典所存储的至少一个第二进程对应的第二进程参数信息进行遍历”,包括:将内存字典所存储的每个值信息中的第二进程参数信息进行遍历,并将遍历到的第二进程参数信息与发生变化的第一进程参数信息进行参数匹配。

具体地,内存字典中存储的每个值信息为第二进程对应的各个第二进程参数信息。本实施例可以遍历每个值信息中的每个第二进程参数信息,并将遍历到的第二进程参数信息与发生变化的第一进程参数信息进行参数匹配,确定遍历到的第二进程参数信息与发生变化的第一进程参数信息是否属于同一参数,若是,则表明参数匹配成功,若否,则表明参数匹配失败。

示例性地,内存字典中每个值存储的各个第二进程参数信息可以为第二进程对应的各个第二进程参数标识,其中第二进程参数标识可以为第二进程参数的名称,或者由数字、字母、汉字、符号和图形中的至少一种组成,用于分区不同的第二进程参数。相应地,本实施例可以将每个值信息中的各个第二进程参数标识与发生变化的第一进程参数标识进行标识匹配,若标识相同,则表明两者为同一参数,此时可以确定参数匹配成功,否则参数匹配失败。

相应地,s120中的“确定发生变化的第一进程参数信息对应的目标第二进程”,包括:确定与发生变化的第一进程参数信息匹配成功的第二进程参数信息对应的目标值信息;根据内存字典和目标值信息确定目标键信息,并根据目标键信息确定发生变化的第一进程参数信息对应的目标第二进程。

具体地,对于内存字典中的每个值信息而言,若某个值信息中的第二进程参数信息与发生变化的第一进程参数信息参数匹配成功,则可以确定该值信息为发生变化的第一进程参数信息对应的目标值信息,并根据内存字典中的键信息与值信息的对应关系,可以确定目标值信息对应的目标键信息。根据目标键信息获得第二进程标识,从而可以将该第二进程标识对应的第二进程确定为发生变化的第一进程参数信息对应的目标第二进程。同理,可以确定出每个发生变化的第一进程参数信息对应的所有目标第二进程。

在上述技术方案的基础上,在s110之前,还包括:当第一进程接收第二进程对应的第二进程参数信息时,第一进程检测内存字典中是否存在接收的第二进程对应的第二进程标识;如果内存字典中不存在第二进程标识,则将接收到的第二进程对应的第二进程标识和第二进程参数信息存储至内存字典中。

具体地,第二进程可以根据业务需求和实际情况,将第二进程对应的第二进程参数信息发送至第一进程。示例性地,在系统初始化阶段,系统中的每个第二进程均将自身的第二进程参数信息发送至第一进程。在某个第二进程的第二进程参数信息发生变更时,该第二进程可以将变更后的第二进程参数信息发送至第一进程。当第一进程接收到第二进程对应的第二进程参数信息时,第一进程可以遍历内存字典中当前存储的各个第二进程标识,并将当前存储的第二进程标识与接收的第二进程对应的第二进程标识进行匹配,确定当前时刻内存字典中是否存储有该第二进程。若内存字典当前存储的所有第二进程标识与接收的第二进程对应的第二进程标识均匹配失败,则表明内存字典中并不存在接收的第二进程对应的第二进程标识,此时可以通过预设存储add函数,将接收到的第二进程对应的第二进程标识以及第二进程参数信息存储至内存字典中,以便第一进程可以基于内存字典与第二进程进行准确地通信。

在上述技术方案的基础上,该方法还包括:如果内存字典中存在第二进程标识,则将内存字典中第二进程标识对应的历史第二进程参数信息与当前接收的当前第二进程参数信息进行匹配;如果历史第二进程参数信息与当前第二进程参数信息匹配失败,则更新历史第二进程参数信息为当前第二进程参数信息。

具体地,若内存字典当前存储的某个第二进程标识与接收的第二进程对应的第二进程标识匹配成功,则表明内存字典中存在接收的第二进程对应第二进程标识,即内存字典中也已经存储有该第二进程对应的第二进程参数信息,此时可以将内存字典中存储的该第二进程对应的第二进程参数信息作为该第二进程对应的历史第二进程参数信息,将当前接收的该第二进程对应的第二进程参数信息作为该第二进程对应的当前第二进程参数信息。通过将每个历史第二进程参数信息与每个当前第二进程参数信息进行匹配,若历史第二进程参数信息与当前第二进程参数信息相同,且历史第二进程参数信息的数量与当前第二进程参数信息的数量相等,则表明该第二进程对应的第二进程参数信息没有发生变化,此时可以无需更新内存字典。若历史第二进程参数信息与当前第二进程参数信息不相同,和/或历史第二进程参数信息的数量与当前第二进程参数信息的数量不相等,则表明匹配失败,即该第二进程对应的第二进程参数信息发生变化,此时可以更新内存字典中的历史第二进程参数信息为当前第二进程参数信息,以对内存字典中的第二进程参数信息进行动态存储,使得第一进程可以根据第二进程的当前第二进程参数信息进行通讯,保证通讯的准确性以及进一步避免多余的消息通知。

实施例二

图3为本发明实施例二提供的一种进程通信方法的流程图,本实施例在上述实施例的基础上,对“第一进程接收第二进程对应的第二进程参数信息”进行了进一步优化。其中与上述实施例相同或相应的术语的解释在此不再赘述。

参见图3,本实施例提供的进程通信方法具体包括以下步骤:

s210、第二进程以第二进程对应的进程参数对象为函数输入参数,调用第一进程的预设接口中的进程注册函数,将进程参数对象注册至第一进程中。

其中,预设接口可以是指第一进程预先设置的,对外提供的注册接口,以便第二进程可以通过预设接口将第二进程对应的第二进程参数信息注册至第一进程中。第二进程对应的进程参数对象是第二进程预先设置的,预设接口类型的,用于存储第二进程对应的第二进程参数信息的对象。进程注册函数可以是在预设接口中预先定义的,用于将进程参数对象注册至第一进程中的函数。示例性地,进程注册函数可以定义为:registerstatustype(systemstatustypeinfosystemstatustypeinfo);其中,registerstatustype为进程注册函数的名称,systemstatustypeinfo为预设接口类型systemstatustypeinfo的第二进程对应的进程参数对象。

示例性地,进程注册函数可以通过如下步骤实现将进程参数对象注册至第一进程中的功能:根据进程参数对象中的第二进程参数信息对预设接口中的第一参数集合对象进行初始化;对初始化后的第一参数集合对象进行序列化,获得第二参数集合对象,并将第二参数集合对象发送至第一进程中。

其中,第一参数集合对象可以是指在预先接口中预先定义的,用于存储第一进程对应的第一进程参数信息的集合对象。也就是说,第一参数集合对象中的每个元素信息为第一进程对应的每个第一进程参数信息。

具体地,在第二进程以第二进程对应的进程参数对象为函数输入参数,调用第一进程的预设接口中的进程注册函数后,根据进程参数对象中的第二进程参数信息对第一参数集合对象进行初始化,即实例化。也就是说,初始化后的第一参数集合对象存储的是进程参数对象中的第二进程参数信息。对初始后的第一参数集合对象进行序列化,从而封装为符合传输格式的第二参数集合对象,以便将第二参数集合对象传输至第一进程中,实现数据的传输。

s220、第一进程对注册后的进程参数对象进行解析,获得第二进程对应的第二进程参数信息。

具体地,本实施例可以对注册至第一进程后的进程参数对象进行解析,从而可以获得进程参数对象中存储的第二进程对应的第二进程参数信息。

示例性地,在接收到第二进程注册发送的第二参数集合对象时,s220可以包括:第一进程对第二集合参数对象进行反序列化,获得第二进程对应的第二进程参数信息。具体地,第一进程通过对第二集合参数对象进行反序列化以及数据解析,使得第一进程可以获得第二集合参数对象中存储的第二进程对应的第二进程参数信息。

当存在多个第二进程时,可以通过分别调用第一进程的预设接口中的进程注册函数,将每个第二进程对应的进程参数对象注册至第一进程中,使得第一进程可以接收到每个第二进程发送的第二进程参数信息。当某个第二进程对应的第二进程参数信息发生变化时,该第二进程再次调用预设接口中的进程注册函数,将相应的进程参数对象注册至第一进程中。

s230、第一进程检测内存字典中是否存在获得的第二进程对应的第二进程标识;如果内存字典中不存在第二进程标识,则将接收到的第二进程对应的第二进程标识和第二进程参数信息存储至内存字典中。

s240、第一进程在检测到至少一个第一进程参数信息发生变化时,根据发生变化的第一进程参数信息对内存字典所存储的至少一个第二进程对应的第二进程参数信息进行遍历。

s250、第一进程确定发生变化的第一进程参数信息对应的目标第二进程,并将变化后的第一进程参数信息发送至相应的目标第二进程中。

本实施例的技术方案,第二进程通过调用第一进程的预设接口中的进程注册函数的方式,将第二进程对应的进程参数对象注册至第一进程中,从而可以使得第一进程更加快速便捷地获得第二进程对应的第二进程参数信息,进一步提高了系统的运行效率。

在上述各个技术方案的基础上,图4给出了一种应用于移动c型臂软件系统中的进程通信方法的流程图。如图4所示,将移动c型臂软件系统中的系统状态管理进程作为第一进程,该系统中的其余进程作为第二进程,其中,系统状态管理进程对应的参数信息可以包括但不限于磁盘空间、网络连接、球管温度、ups(uninterruptiblepowersystem,不间断电源)电量、c型臂连接以及来自硬件模块的关机命令等。

图4中以系统状态管理进程a和三个第二进程b、c和d为例阐述在c型臂软件系统中进程通信的过程。具体的进程通信过程为:第二进程b、c和d均调用系统状态管理进程a的预设接口中的进程注册函数,将第二进程对应的第二进程参数信息注册至预设接口中,即第二进程b通过调用预设接口中的进程注册函数,注册自身所需的第二进程参数信息1;第二进程c通过调用预设接口中的进程注册函数,注册自身所需的第二进程参数信息2;第二进程d通过调用预设接口中的进程注册函数,注册自身所需的第二进程参数信息3。预设接口分别将注册的第二进程参数信息1、2和3对应的集合对象进行序列化后发送命令给系统状态管理进程a,系统状态管理进程a分别对接收的命令进行解析获得第二进程b、c和d对应的第二进程参数信息,并在检测到内存字典中不存在第二进程b、c和d对应的第二进程标识时,将第二进程标识b、c和d以及第二进程参数信息1、2和3存储至内存字典中。系统状态管理进程a在检测到c型臂软件系统中的至少一个参数信息发生变化时,系统状态管理进程a根据内存字典确定发生变化的参数信息对应的第二进程,比如,若是第二进程参数信息1发生变化时,将变化后的第二进程参数信息1进行封装后通过点对点的方式发送命令,将变化后的第二进程参数信息1发送至第二进程b;同理,在第二进程参数信息2发生变化时发送命令给第二进程c,以将变化后的第二进程参数信息2发送至第二进程c中。在第二进程参数信息3发生变化时发送命令给第二进程d,以将变化后的第二进程参数信息3发送至第二进程d中。从而可以保证每个第二进程接收到的参数信息均为自身所需的参数信息,进而避免了多余的消息通知。

以下是本发明实施例提供的进程通信系统的实施例,该系统与上述各实施例的进程通信方法属于同一个发明构思,在进程通信系统的实施例中未详尽描述的细节内容,可以参考上述进程通信方法的实施例。

实施例三

图5为本发明实施例三提供的一种进程通信系统的结构示意图,本实施例可适用于软件系统中的进程之间进行通信的情况,该系统包括:第一进程310和至少一个第二进程320;

其中,第一进程310用于:在检测到至少一个第一进程参数信息发生变化时,根据发生变化的第一进程参数信息对内存字典所存储的至少一个第二进程320对应的第二进程参数信息进行遍历;确定发生变化的第一进程参数信息对应的目标第二进程,并将变化后的第一进程参数信息发送至相应的目标第二进程中。

可选地,第一进程310还用于:在第一进程在检测到至少一个第一进程参数信息发生变化之前,当第一进程接收第二进程对应的第二进程参数信息时,检测内存字典中是否存在接收的第二进程对应的第二进程标识;如果内存字典中不存在第二进程标识,则将接收到的第二进程对应的第二进程标识和第二进程参数信息存储至内存字典中。

可选地,第二进程320用于:以第二进程对应的进程参数对象为函数输入参数,调用第一进程的预设接口中的进程注册函数,将进程参数对象注册至第一进程中,其中进程参数对象用于存储第二进程对应的第二进程参数信息;相应地,第一进程310还用于:对注册后的进程参数对象进行解析,获得第二进程对应的第二进程参数信息。

可选地,进程注册函数通过如下步骤实现将进程参数对象注册至第一进程中的功能:

根据进程参数对象中的第二进程参数信息对预设接口中的第一参数集合对象进行初始化;对初始化后的第一参数集合对象进行序列化,获得第二参数集合对象,并将第二参数集合对象发送至第一进程中;

相应地,第一进程310还用于:第一进程对第二集合参数对象进行反序列化,获得第二进程对应的第二进程参数信息。

可选地,第一进程310还用于:如果内存字典中存在第二进程标识,则将内存字典中第二进程标识对应的历史第二进程参数信息与当前接收的当前第二进程参数信息进行匹配;如果历史第二进程参数信息与当前第二进程参数信息匹配失败,则更新历史第二进程参数信息为当前第二进程参数信息。

可选地,内存字典用于存储至少一个第二进程对应的键值对信息,其中,键值对信息中的键信息为第二进程对应的字符串类型的第二进程标识;键值对信息中的值信息为第二进程对应的集合类型的第二进程参数信息。

可选地,第一进程310具体用于:将内存字典所存储的每个值信息中的第二进程参数信息进行遍历,并将遍历到的第二进程参数信息与发生变化的第一进程参数信息进行参数匹配;确定与发生变化的第一进程参数信息匹配成功的第二进程参数信息对应的目标值信息;根据内存字典和目标值信息确定目标键信息,并根据目标键信息确定发生变化的第一进程参数信息对应的目标第二进程。

本发明实施例所提供的进程通信系统,通过第一进程预先将至少一个第二进程对应的第二进程参数信息存储至第一进程维护的内存字典中,第一进程负责检测系统中各个第一进程参数信息是否发生变化,并在检测到至少一个第一进程参数信息发生变化时,对内存字典中所存储的每个第二进程对应的第二进程参数信息进行遍历,确定发生变化的第一进程参数信息对应的目标第二进程,即发生变化的第一进程参数信息为目标第二进程所需的参数信息,从而可以将变化后的第一进程参数信息仅发送至对应的目标第二进程中,无需发送至其余第二进程中,从而可以避免系统中多余的消息通知,以及避免其余第二进程接收不必要的参数信息,进而减少了通讯负担,提高了系统的运行效率。

实施例四

图6是本发明实施例四提供的一种终端的结构示意图。参见图6,该终端包括:

一个或多个处理器410;

存储器420,用于存储一个或多个程序;

当一个或多个程序被一个或多个处理器410执行,使得一个或多个处理器410实现如上述实施例中任意实施例所提供的进程通信方法,该方法包括:

第一进程在检测到至少一个第一进程参数信息发生变化时,根据发生变化的第一进程参数信息对内存字典所存储的至少一个第二进程对应的第二进程参数信息进行遍历;

第一进程确定发生变化的第一进程参数信息对应的目标第二进程,并将变化后的第一进程参数信息发送至相应的目标第二进程中。

例;终端中的处理器410和存储器420可以通过总线或其他方式连接,图6中以通过总线连接为例。

存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的进程通信方法对应的程序指令。处理器410通过运行存储在存储器420中的软件程序以及指令,从而执行终端的各种功能应用以及数据处理,即实现上述的进程通信方法。

存储器420主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本实施例提出的终端与上述实施例提出的进程通信方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行进程通信方法相同的有益效果。

实施例五

本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的进程通信方法,该方法包括:

第一进程在检测到至少一个第一进程参数信息发生变化时,根据发生变化的第一进程参数信息对内存字典所存储的至少一个第二进程对应的第二进程参数信息进行遍历;

第一进程确定发生变化的第一进程参数信息对应的目标第二进程,并将变化后的第一进程参数信息发送至相应的目标第二进程中。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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