多进程管理方法、存储介质、电子设备及系统技术方案

技术编号:19857109 阅读:19 留言:0更新日期:2018-12-22 11:37
本发明专利技术公开了一种多进程管理方法、存储介质、电子设备及系统,涉及控制技术领域,该方法包括调用Windows系统API函数中的CreateNamedPipe函数创建多个用于主进程和辅助进程间通信的命名管道,且每个命名管道对应一个辅助进程;主进程调用函数WriteFile在命名管道中写入任务数据,并将写入的任务数据发至对应的辅助进程;辅助进程调用函数ReadFile从命名管道中读取任务数据;辅助进程基于任务数据进行相应任务的执行,且待任务执行完毕后,辅助进程调用函数AtExit完成自身的退出。本发明专利技术中主进程通过命名管道对辅助进程的任务执行状态进行掌控,保证多辅助进程运行情况下应用程序的正常运行。

【技术实现步骤摘要】
多进程管理方法、存储介质、电子设备及系统
本专利技术涉及控制
,具体涉及一种多进程管理方法、存储介质、电子设备及系统。
技术介绍
当前,对于一些服务类型的应用程序,特别是对于具有独立任务的应用程序,通常会采用多进程的架构设计,采用多进程的设计,可以使得一个进程的不稳定不会导致整个程序出错,即对于一个服务型的应用程序,当一个进程因为奔溃退出时,其它进程还可以继续进行服务,多进程具有更强的健壮性,以此来保证应用程序的正常运行。在实际的运行过程中,例如可以创建一个主进程用于接收任务,然后通过主进程创建多个辅助进程(子进程)来完成不同任务,即对于每一个所接收的任务,都由一个辅助进程来完成,即不同的任务创建不同的辅助进程来完成,例如搜索文件任务、写文件任务、图片处理任务等。实际运行中并不能保障每个辅助进程都能稳定运行,由于同时运行的辅助进程过多,有的辅助进程的任务可能执行到一半时产生了数据错误,导致应用程序奔溃,有的辅助进程执行的任务可能会产生死锁导致应用程序卡死,现有技术中主进程对于辅助进程并没有很好的管理方案。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种多进程管理方法,主进程通过命名管道对辅助进程的任务执行状态进行掌控,保证多辅助进程运行情况下应用程序的正常运行。为达到以上目的,本专利技术采取的技术方案是,包括:调用Windows系统API函数中的CreateNamedPipe函数创建多个用于主进程和辅助进程间通信的命名管道,且每个命名管道对应一个辅助进程;主进程调用函数WriteFile在命名管道中写入任务数据,并将写入的任务数据发至对应的辅助进程;辅助进程调用函数ReadFile从命名管道中读取任务数据;辅助进程基于任务数据进行相应任务的执行,且待任务执行完毕后,辅助进程调用函数AtExit完成自身的退出,并通过命名管道发送用于表示任务已执行完毕且辅助进程已退出的数据至主进程。在上述技术方案的基础上,每个辅助进程对应执行一个任务;所述命名管道创建时还需传入名称参数;传入命名管道中的名称参数为该命名管道对应辅助进程所待执行任务的名称。在上述技术方案的基础上,当命名管道创建完成后,对于主进程:调用函数ConnectNamedPipe等待该命名管道对应的辅助进程连接;待辅助进程通过命名管道完成与主进程的连接,接收辅助进程通过命名管道发送用于表示连接成功的数据至主进程;调用函数ReadFile对辅助进程发送的数据进行读取;调用函数WriteFile在命名管道中写入任务数据,并将写入的任务数据发至对应的辅助进程。在上述技术方案的基础上,当命名管道创建完成后,对于辅助进程:调用函数CreateFile连接命名管道,完成与主进程间的连接;发送用于表示连接成功的数据至主进程,然后调用函数WaitNamedPipe等待主进程的相应;调用函数ReadFile从命名管道中读取主进程写入的任务数据。在上述技术方案的基础上,所述主进程中预设有任务完成时间,当主进程在命名管道中写入任务数据,并将写入的任务数据发至辅助进程后,若在预设有的任务完成时间内,主进程未收到辅助进程发送的用于表示任务已执行完毕且辅助进程已退出的数据,则主进程调用函数TerminateProcess终止该辅助进程的运行。在上述技术方案的基础上,该方法还包括:编写用于监控辅助进程的异常处理函数,并完成异常处理函数在Windows系统中的注册,当辅助进程执行任务出现异常时,异常处理函数通过发送日志告知主进程,主进程调用函数TerminateProcess终止该辅助进程的运行。在上述技术方案的基础上,当辅助进程被终止运行后,主进程重新创建辅助进程来重新执行被终止辅助进程之前执行的任务。本专利技术还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:调用Windows系统API函数中的CreateNamedPipe函数创建多个用于主进程和辅助进程间通信的命名管道,且每个命名管道对应一个辅助进程;主进程调用函数WriteFile在命名管道中写入任务数据,并将写入的任务数据发至对应的辅助进程;辅助进程调用函数ReadFile从命名管道中读取任务数据;辅助进程基于任务数据进行相应任务的执行,且待任务执行完毕后,辅助进程调用函数AtExit完成自身的退出,并通过命名管道发送用于表示任务已执行完毕且辅助进程已退出的数据至主进程。本专利技术还提供一种电子设备,其包括:创建单元,其用于调用Windows系统API函数中的CreateNamedPipe函数创建多个用于主进程和辅助进程间通信的命名管道,且每个命名管道对应一个辅助进程;写入单元,其用于驱使主进程调用函数WriteFile在命名管道中写入任务数据,并将写入的任务数据发至对应的辅助进程;读取单元,其用于驱使辅助进程调用函数ReadFile从命名管道中读取任务数据;执行及通知单元,其用于驱使辅助进程基于任务数据进行相应任务的执行,且待任务执行完毕后,辅助进程调用函数AtExit完成自身的退出,并通过命名管道发送用于表示任务已执行完毕且辅助进程已退出的数据至主进程。本专利技术还提供一种多进程管理系统,包括:创建模块,其用于调用Windows系统API函数中的CreateNamedPipe函数创建多个用于主进程和辅助进程间通信的命名管道,且每个命名管道对应一个辅助进程;写入模块,其用于驱使主进程调用函数WriteFile在命名管道中写入任务数据,并将写入的任务数据发至对应的辅助进程;读取模块,其用于驱使辅助进程调用函数ReadFile从命名管道中读取任务数据;执行及通知模块,其用于驱使辅助进程基于任务数据进行相应任务的执行,且待任务执行完毕后,辅助进程调用函数AtExit完成自身的退出,并通过命名管道发送用于表示任务已执行完毕且辅助进程已退出的数据至主进程。与现有技术相比,本专利技术的优点在于:通过创建用于主进程和辅助进程间通信的命名管道,然后主进程在创建的命名管道写入任务数据,任务数据通过命名管道发送至辅助进程,辅助进程基于任务数据进行相应任务的执行,且待任务执行完毕后,辅助进程调用函数AtExit完成自身的退出,并通过命名管道发送用于表示任务已执行完毕且辅助进程已退出的数据至主进程,辅助进程和主进程间通过创建的命名管道进行通信,同时主进程通过命名管道对辅助进程的任务执行状态进行掌握,保证多辅助进程运行情况下应用程序的正常运行。附图说明图1为本专利技术实施例中一种多进程管理方法的流程图;图2为本专利技术实施例中一种电子设备的结构示意图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。本领域内的技术人员应明白,本专利技术的实施例可提供为方法、系统、或计算机程序产品。因此,本专利技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本专利技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。参见图1所示,本专利技术实施例提供一种多进程管理方法,用于Windows系统中运行的应用程序的主进程对辅助进程(子进程)进行管理,当然,本专利技术实施例中多进程管理方法思路同样也能够应用于Li本文档来自技高网...

【技术保护点】
1.一种多进程管理方法,其特征在于,包括以下步骤:调用Windows系统API函数中的CreateNamedPipe函数创建多个用于主进程和辅助进程间通信的命名管道,且每个命名管道对应一个辅助进程;主进程调用函数WriteFile在命名管道中写入任务数据,并将写入的任务数据发至对应的辅助进程;辅助进程调用函数ReadFile从命名管道中读取任务数据;辅助进程基于任务数据进行相应任务的执行,且待任务执行完毕后,辅助进程调用函数AtExit完成自身的退出,并通过命名管道发送用于表示任务已执行完毕且辅助进程已退出的数据至主进程。

【技术特征摘要】
1.一种多进程管理方法,其特征在于,包括以下步骤:调用Windows系统API函数中的CreateNamedPipe函数创建多个用于主进程和辅助进程间通信的命名管道,且每个命名管道对应一个辅助进程;主进程调用函数WriteFile在命名管道中写入任务数据,并将写入的任务数据发至对应的辅助进程;辅助进程调用函数ReadFile从命名管道中读取任务数据;辅助进程基于任务数据进行相应任务的执行,且待任务执行完毕后,辅助进程调用函数AtExit完成自身的退出,并通过命名管道发送用于表示任务已执行完毕且辅助进程已退出的数据至主进程。2.如权利要求1所述的一种多进程管理方法,其特征在于:每个辅助进程对应执行一个任务;所述命名管道创建时还需传入名称参数;传入命名管道中的名称参数为该命名管道对应辅助进程所待执行任务的名称。3.如权利要求1所述的一种多进程管理方法,其特征在于,当命名管道创建完成后,对于主进程:调用函数ConnectNamedPipe等待该命名管道对应的辅助进程连接;待辅助进程通过命名管道完成与主进程的连接,接收辅助进程通过命名管道发送用于表示连接成功的数据至主进程;调用函数ReadFile对辅助进程发送的数据进行读取;调用函数WriteFile在命名管道中写入任务数据,并将写入的任务数据发至对应的辅助进程。4.如权利要求3所述的一种多进程管理方法,其特征在于,当命名管道创建完成后,对于辅助进程:调用函数CreateFile连接命名管道,完成与主进程间的连接;发送用于表示连接成功的数据至主进程,然后调用函数WaitNamedPipe等待主进程的相应;调用函数ReadFile从命名管道中读取主进程写入的任务数据。5.如权利要求1所述的一种多进程管理方法,其特征在于:所述主进程中预设有任务完成时间,当主进程在命名管道中写入任务数据,并将写入的任务数据发至辅助进程后,若在预设有的任务完成时间内,主进程未收到辅助进程发送的用于表示任务已执行完毕且辅助进程已退出的数据,则主进程调用函数TerminateProcess终止该辅助进程的运行。6.如权利要求1所述的一种多进程管理方法,其特征在于,该方法还包括:编写用于监控辅助进程的异常处理函数,并完成异常处理函数在Windows系统中的注册,当辅助进程执行任务出现异常时,异常处理函数通过发送日志告知主进程,主进程...

【专利技术属性】
技术研发人员:周志刚
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1