【技术实现步骤摘要】
一种进程间的通信方法和装置
本专利技术涉及人机交互
,具体涉及一种进程间的通信方法和装置。
技术介绍
进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,就有了进程间通信(Inter-Process Communication, IPC)。所谓IPC通信就是指进程间的信息传播或交换。一般而言,主程序在运行过程中会运行对应的主进程,基于不同任务的需要往往还需要同时启动并运行多个对应的子进程,而随着子进程数量的增加,进程间通信的复杂度也随之提高。这样一来,如何有效控制多进程通信时的复杂度,减少数据传输错误和异常就成为本领域技术人员在实施进程间通信时需要解决的技术问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种进程间的通信方法和装置。依据本专利技术的一个方面,提供了一种进程间的通信方法,所述方法包括:主进程创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识;主进程使用所述创建的子进程宿主对象启动子进程,并向所述子进程发送第一命令,所述第一命令行携带所述子进程标识、主进程通信接口句柄;子进程启动并接收来自主进程的第一命令;所述子进程创建对应的子进程对象,并对所述子进程对象进行初始化;所述子进程对象向所述主进程发送启动应答消息,所述启动应答消息携带所述子进程对象对应的子进程通信接口句柄、子进程标识;主进程收到子进程的启动应答消息后,根据所述启动应答消息中的子进程标识确定对应的子进程宿主对象, ...
【技术保护点】
一种进程间通信的方法,包括:主进程创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识;主进程使用所述创建的子进程宿主对象启动子进程,并向所述子进程发送第一命令,所述第一命令行携带所述子进程标识、主进程通信接口句柄;子进程启动并接收来自主进程的第一命令;所述子进程创建对应的子进程对象,并对所述子进程对象进行初始化;所述子进程对象向所述主进程发送启动应答消息,所述启动应答消息携带所述子进程对象对应的子进程通信接口句柄、子进程标识;主进程收到子进程的启动应答消息后,根据所述启动应答消息中的子进程标识确定对应的子进程宿主对象,并为所述子进程宿主对象设置对应的子进程通信接口句柄;所述主进程和所述子进程建立通信通道进行数据传输。
【技术特征摘要】
1.一种进程间通信的方法,包括: 主进程创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识;主进程使用所述创建的子进程宿主对象启动子进程,并向所述子进程发送第一命令,所述第一命令行携带所述子进程标识、主进程通信接口句柄; 子进程启动并接收来自主进程的第一命令; 所述子进程创建对应的子进程对象,并对所述子进程对象进行初始化; 所述子进程对象向所述主进程发送启动应答消息,所述启动应答消息携带所述子进程对象对应的子进程通信接口句柄、子进程标识; 主进程收到子进程的启动应答消息后,根据所述启动应答消息中的子进程标识确定对应的子进程宿主对象,并为所述子进程宿主对象设置对应的子进程通信接口句柄; 所述主进程和所述子进程建立通信通道进行数据传输。2.如权利要求1所述的方法,其特征在于,所述主进程和所述子进程建立通信通道进行数据传输,具体包括: 所述主进程通过主进程通信接口句柄接收来自子进程的数据,并通过子进程宿主对象的子进程通信接口句柄向对应的子进程发送数据; 所述子进程通过子进程通信接口句柄接收来自主进程的数据,并通过主进程通信接口句柄向主进程发送数据。3.如权利要求1所 述的方法,其特征在于,所述方法还包括: 主进程判断与子进程的数据通道是否已建成,若建成,通过所述子进程宿主对象向对应的子进程发送第二命令;若所述数据通道未建成,则缓存所述第二命令携带的命令参数; 当子进程接收到来自主进程的第二命令后,解析并执行所述第二命令。4.如权利要求3所述的方法,其特征在于,所述主进程创建子进程宿主对象之前还包括: 主进程创建新的浏览器子窗口; 主进程创建子进程渲染宿主对象,并为所述子进程渲染宿主对象分配对应的渲染对象标识; 所述主进程创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识,具体包括: 主进程调用所述子进程渲染宿主对象的导航方法,在所述导航方法中创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识; 所述主进程通过所述子进程宿主对象向对应的子进程发送的第二命令包括: 渲染对象创建命令和对应的渲染对象标识; 所述子进程解析并执行所述第二命令,具体包括: 子进程判断所述第二命令中是否包括渲染对象创建命令,若包括,则从所述第二命令中获得对应的渲染对象标识,以及: 创建子进程渲染对象,并为该子进程渲染对象设置所述渲染对象标识; 创建子进程浏览器渲染对象,并使用子进程对象的方法向主进程发送渲染对象创建应答消息,所述渲染对象创建应答消息携带所述子进程浏览器渲染对象的子进程浏览器窗口句柄; 所述方法还包括: 若主进程收到来自子进程的渲染对象创建应答消息,则从所述渲染对象创建应答消息中获得子进程浏览器窗口句柄,并将所述子进程浏览器窗口句柄的父窗口设置为当前浏览器子窗口。5.如权利要求4所述的方法,其特征在于, 所述主进程通过子进程宿主对象向对应的子进程发送的第二命令还包括: 子进程渲染对象导航命令和对应的目标网页标识; 所述子进程解析并执行所述第二命令,还包括: 子进程判断所述第二命令中是否包括子进程渲染对象导航命令,若包括,则从所述第二命令中获得对应的目标网页标识,以及: 子进程使用所述子进程浏览器渲染对象的导航方法导航所述目标网页标识。6.一种进程间通信装置,包括主进程模块、子进程模块和数据通道; 所述主进程模块包括: 子进程宿主对象模块,用于创建子进程宿主对象,并为所述子进程宿主对象分配一个对应...
【专利技术属性】
技术研发人员:李超,张菊元,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。