多进程处理方法、装置、终端设备及计算机可读存储介质与流程

文档序号:19064604发布日期:2019-11-06 02:11阅读:137来源:国知局
本申请涉及计算机
技术领域
:,尤其涉及一种多进程处理方法、装置、终端设备及计算机可读存储介质。
背景技术
::随着计算机技术的飞速发展,电脑等终端设备的cpu内核的主流配置普遍采用四核处理器,四核处理器具有强大的数据处理能力,为终端设备的多线程软件同时运行多种任务提供了性能保障,进而保障了终端设备的系统安全稳定的运行。股票用户在终端设备上下载安装股票软件,通过打开股票软件的面板窗口来查看股票行情或股票交易。由于现有的股票软件大部分是单线程运行,在股票用户打开股票软件的多个面板窗口时,各个面板窗口的界面渲染都在一个线程中执行,随着股票用户打开的面板窗口的数量增加,每个线程要执行的任务数量越来越多,导致单个cpu内核的资源占用率随之增高,进而降低了股票软件的性能。上述对问题的发现过程的描述,仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。技术实现要素:为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种多进程处理方法、装置、终端设备及计算机可读存储介质。有鉴于此,第一方面,本申请提供了一种多进程处理方法,应用于终端,所述方法包括以下步骤:获取主进程的待执行任务信息;判断所述待执行任务信息是否满足设定的子进程创建条件;当所述待执行任务信息满足设定的子进程创建条件时,创建至少一个子进程,所述至少一个子进程具有唯一的子进程标识;所述至少一个子进程为多个子进程中的一个或多个;所述主进程发送启动请求消息到所述至少一个子进程,所述启动请求消息中携带有主进程标识、所述子进程标识以及与所述至少一个子进程对应的待执行子任务;所述主进程接收所述至少一个子进程发送的启动应答消息以及连接建立请求;所述主进程根据所述连接建立请求,发送与所述连接建立请求对应的响应消息到所述至少一个子进程,以使所述至少一个子进程根据接收到的所述响应消息,加载对应的待执行子任务。结合第一方面,在第一方面第一种可能的实施方式中,所述待执行任务信息包括待执行任务的数量,所述判断所述待执行任务信息是否满足设定的子进程创建条件,包括:判断所述待执行任务的数量是否大于设定的待执行任务的阈值;当所述待执行任务的数量大于设定的待执行任务的阈值时,确定所述待执行任务信息满足设定的子进程创建条件。结合第一方面,在第一方面第二种可能的实施方式中,所述主进程发送启动请求消息到所述至少一个子进程之前还包括:根据所述主进程的主进程标识以及所述至少一个子进程的子进程标识,建立所述主进程与所述至少一个子进程之间的通信管道;利用各个所述通信管道进行所述主进程与对应的至少一个子进程之间的通讯数据分发,所述通讯数据包括字节流数据。结合第一方面,在第一方面第三种可能的实施方式中,所述方法还包括:按照预设命名规则对建立的各个所述通信管道进行命名。结合第一方面,在第一方面第四种可能的实施方式中,所述方法还包括:利用密钥对所述通讯数据进行加密;其中,所述密钥的公钥为所述主进程生成第一标识信息,所述主进程将所述公钥通过共享内存发送给所述至少一个子进程;利用md5消息摘要算法将所述公钥和设定的私钥生成所述密钥。结合第一方面,在第一方面第五种可能的实施方式中,所述通讯数据包括存储在共享内存上的公共数据和/或配置数据,所述方法还包括:利用互斥锁对所述共享内存进行加锁处理;判断所述主进程和所述至少一个子进程是否同时执行对所述公共数据和/或配置数据的访问操作;若是,则进一步判断所述主进程或所述至少一个子进程是否具有所述互斥锁;若是,则利用所述主进程或所述至少一个子进程直接对所述公共数据和/或配置数据进行访问操作,并在完成访问操作后释放所述互斥锁。第二方面,本申请提供了一种多进程处理装置,所述装置包括:任务信息获取单元,配置用于获取主进程的待执行任务信息;判断单元,配置用于判断所述待执行任务信息是否满足设定的子进程创建条件;子进程创建单元,配置用于当所述待执行任务信息满足设定的子进程创建条件时,创建至少一个子进程,所述至少一个子进程具有唯一的子进程标识;所述至少一个子进程为多个子进程中的一个或多个;请求消息发送单元,配置用于所述主进程发送启动请求消息到所述至少一个子进程,所述启动请求消息中携带有主进程标识、所述子进程标识以及与所述至少一个子进程对应的待执行子任务;接收单元,配置用于所述主进程接收所述至少一个子进程发送的启动应答消息以及连接建立请求;响应消息发送单元,配置用于所述主进程根据所述连接建立请求,发送与所述连接建立请求对应的响应消息到所述至少一个子进程,以使所述至少一个子进程根据接收到的所述响应消息,加载对应的待执行子任务。结合第二方面,在第二方面第一种可能的实施方式中,所述装置还包括:通信管道建立单元,配置用于根据所述主进程的主进程标识以及所述至少一个子进程的子进程标识,建立所述主进程与所述至少一个子进程之间的通信管道;数据分发单元,配置用于利用各个所述通信管道进行所述主进程与对应的至少一个子进程之间的通讯数据分发,所述通讯数据包括字节流数据。第三方面,本发明实施例还提出一种移动终端,包括:至少一个处理器、存储器、至少一个网络接口和用户接口;所述至少一个处理器、存储器、至少一个网络接口和用户接口通过总线系统耦合在一起;所述处理器通过调用所述存储器存储的程序或指令,用于执行如第一方面所述方法的步骤。第四方面,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有多进程处理程序,所述多进程处理程序被处理器执行时实现如第一方面所述方法的步骤。本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的一种多进程处理方法、装置、终端设备及计算机可读存储介质,应用于终端,该方法包括以下步骤:获取主进程的待执行任务信息;判断所述待执行任务信息是否满足设定的子进程创建条件;当所述待执行任务信息满足设定的子进程创建条件时,创建至少一个子进程,所述至少一个子进程具有唯一的子进程标识;所述至少一个子进程为多个子进程中的一个或多个;所述主进程发送启动请求消息到所述至少一个子进程,所述启动请求消息中携带有主进程标识、所述子进程标识以及与所述至少一个子进程对应的待执行子任务;所述主进程接收所述至少一个子进程发送的启动应答消息以及连接建立请求;所述主进程根据所述连接建立请求,发送与所述连接建立请求对应的响应消息到所述至少一个子进程,以使所述至少一个子进程根据接收到的所述响应消息,加载对应的待执行子任务。本发明可以针对股票用户在多个屏幕上打开多个面板窗口的场景进行性能优化,每个子任务对应一个进程,即每个独立面板窗口对应一个进程,能够充分利用cpu多核的优势,同时也分摊了内存、句柄等其它系统资源占用。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明一个实施例提供的一种多进程处理方法的流程图;图2为本发明一个实施例提供的一种多进程处理装置的结构示意图;图3为本发明一个实施例提供的一种移动终端的框图。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(personaldigitalassistant,pda)、便捷式媒体播放器(portablemediaplayer,pmp)等移动终端,以及诸如数字tv、台式计算机等固定终端。后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。参照图1,图1为本发明一个实施例提供的一种多进程处理方法,应用于终端,可包括以下步骤s101至步骤s106:s101、获取主进程的待执行任务信息。本申请实施例中的待执行任务信息即为需要主进程运行的面板窗口信息,待执行任务信息包括待执行任务的数量,即为需要主进程运行的面板窗口的数量。s102、判断待执行任务信息是否满足设定的子进程创建条件。在本申请实施例中,待执行任务信息包括待执行任务的数量,判断待执行任务信息是否满足设定的子进程创建条件,包括:判断待执行任务的数量是否大于设定的待执行任务的阈值;当待执行任务的数量大于设定的待执行任务的阈值时,确定待执行任务信息满足设定的子进程创建条件。s103、当待执行任务信息满足设定的子进程创建条件时,创建至少一个子进程,至少一个子进程具有唯一的子进程标识;至少一个子进程为多个子进程中的一个或多个。在主进程将面板窗口独立出来时,新建一个子进程来加载该面板窗口,如果有多个面板窗口需要运行,则每个从主进程独立出来的面板窗口均新建一个对应的子进程来加载该面板窗口,各个子进程的业务逻辑和数据相对独立,主进程和子进程只是显示的面板窗口不同,使得多进程改造成本大大降低。同时,新建子进程时,记录该子进程的子进程标识(即子进程的id),子进程标识用于主进程与对应的子进程通讯。只有主进程需要与服务器建立网络连接,其它子进程则通过主进程来收发通讯数据,可在网络层对通讯数据进行同步,根据通讯数据的类型不同,包括以下两种情况:第一种情况、当服务器下发的通讯数据为推送协议数据时,由于推送协议数据不涉及请求操作,而且是所有子进程都需要实时接收推送协议数据,则主进程在接收到推送协议数据后,直接将接收到的推送协议数据分发给所有的子进程即可。例如,子进程包括子进程1、子进程2和子进程3,则主进程将接收到的推送协议数据实时分发给子进程1、子进程2和子进程3。第二种情况、当通讯数据为请求应答协议数据时,由于请求应答协议数据的回包一般都与请求应答协议数据相关联,而其它子进程并没有发起请求的子进程的请求应答协议数据,因此这类协议数据的回包在主进程接收后,主进程只发送给对应的子进程来处理。例如,子进程包括子进程1、子进程2和子进程3,当子进程1请求某股票的k线数据时,执行流程为:子进程1将请求k线数据的协议数据设置一个唯一的请求序列号x,并将该协议数据发送给主进程;当主进程接收到子进程1的协议数据后,将协议数据发送至服务器,生成网络请求的序列号为y,并将y与(子进程1,请求序列号x)的对应关系记录下来;.当主进程接收到服务器的回包后,通过回包的网络请求序列号y得到之前记录的对应关系(子进程1,请求序列号x),并将回包和请求序列号x发送给子进程1;当子进程1接收到回包和请求序列号x后即可进行解析并回调至业务层进行处理;在此过程中,其它子进程不会收到主进程的发送的上述回包。s104、主进程发送启动请求消息到至少一个子进程,启动请求消息中携带有主进程标识、子进程标识以及与至少一个子进程对应的待执行子任务。在本申请实施例中,在主进程发送请求消息到至少一个子进程之前还包括:根据主进程的主进程标识以及至少一个子进程的子进程标识,建立主进程与至少一个子进程之间的通信管道;利用各个通信管道进行主进程与对应的至少一个子进程之间的通讯数据分发,通讯数据包括字节流数据。在本申请实施例中,按照预设命名规则对建立的各个通信管道进行命名。预设命名规则为根据主进程标识和各个子进程标识生成的对应的主进程与子进程之间的通信管道的命名。在本申请实施例中,利用密钥对通讯数据进行加密;其中,密钥的公钥为主进程生成第一标识信息,主进程将公钥通过共享内存发送给至少一个子进程;利用md5消息摘要算法将公钥和设定的私钥生成密钥。在本申请实施例中,通讯数据包括存储在共享内存上的公共数据和/或配置数据,方法还包括:利用互斥锁对共享内存进行加锁处理;判断主进程和至少一个子进程是否同时执行对公共数据和/或配置数据的访问操作;若是,则进一步判断主进程或至少一个子进程是否具有互斥锁;若是,则利用主进程或至少一个子进程直接对公共数据和/或配置数据进行访问操作,并在完成访问操作后释放互斥锁。本申请实施例中共享内存允许多个进程访问同一块内存,即主进程和子进程可以同时读写这些公共数据和/或配置数据,为避免访问冲突,本申请针对读写操作进行互斥量加锁处理。s105、主进程接收至少一个子进程发送的启动应答消息以及连接建立请求。主进程在接收到子进程发送的启动应答消息后,则表明主进程打开了该子进程,此时子进程的面板窗口界面暂时隐藏,需要子进程与主进程建立连接才能显示面板窗口界面,子进程打开后,发送连接建立请求到主进程。s106、主进程根据连接建立请求,发送与连接建立请求对应的响应消息到至少一个子进程,以使至少一个子进程根据接收到的响应消息,加载对应的待执行子任务。主进程在打开子进程时,发送给子进程的待执行子任务中携带有需要子进程打开的面板窗口布局密钥,子进程启动后暂时隐藏面板窗口界面,并通过接收到的启动请求消息中的主进程标识和预设命名规则得到与主进程进行通讯数据分发的通信管道的命名,子进程建立与主进程的通信管道,并按照之前得到的命名对该通信管道进行命名,子进程通过通信管道向主进程发送连接建立请求,当主进程接收到子进程发送的连接建立请求时,将主进程已经获取到的初始化数据发送给子进程,初始化数据包括但不限于账户信息、股票行情信息,当子进程接收到主进程返回的初始化数据后,则认为与主进程的连接建立成功,并根据启动时接收到的面板窗口布局密钥来打开对应的面板窗口,对面板窗口界面进行显示。本申请可以针对股票用户在多个屏幕上打开多个面板窗口的场景进行性能优化,每个子任务对应一个进程,即每个独立面板窗口对应一个进程,能够充分利用cpu多核的优势,同时也分摊了内存、句柄等其它系统资源占用,提升了股票软件的性能。参照图2,本申请实施例还提供了一种多进程处理装置,该装置包括:任务信息获取单元11,配置用于获取主进程的待执行任务信息;判断单元12,配置用于判断所述待执行任务信息是否满足设定的子进程创建条件;子进程创建单元13,配置用于当所述待执行任务信息满足设定的子进程创建条件时,创建至少一个子进程,所述至少一个子进程具有唯一的子进程标识;所述至少一个子进程为多个子进程中的一个或多个;请求消息发送单元14,配置用于所述主进程发送启动请求消息到所述至少一个子进程,所述启动请求消息中携带有主进程标识、所述子进程标识以及与所述至少一个子进程对应的待执行子任务;接收单元15,配置用于所述主进程接收所述至少一个子进程发送的启动应答消息以及连接建立请求;响应消息发送单元16,配置用于所述主进程根据所述连接建立请求,发送与所述连接建立请求对应的响应消息到所述至少一个子进程,以使所述至少一个子进程根据接收到的所述响应消息,加载对应的待执行子任务。在本申请另一实施例中,该装置还包括:通信管道建立单元(图中未示出),配置用于根据所述主进程的主进程标识以及所述至少一个子进程的子进程标识,建立所述主进程与所述至少一个子进程之间的通信管道;数据分发单元(图中未示出),配置用于利用各个所述通信管道进行所述主进程与对应的至少一个子进程之间的通讯数据分发,所述通讯数据包括字节流数据。本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有多进程处理程序,所述多进程处理程序被处理器执行时实现如各方法实施例所示的多进程处理方法的步骤,例如包括:获取主进程的待执行任务信息;判断所述待执行任务信息是否满足设定的子进程创建条件;当所述待执行任务信息满足设定的子进程创建条件时,创建至少一个子进程,所述至少一个子进程具有唯一的子进程标识;所述至少一个子进程为多个子进程中的一个或多个;所述主进程发送启动请求消息到所述至少一个子进程,所述启动请求消息中携带有主进程标识、所述子进程标识以及与所述至少一个子进程对应的待执行子任务;所述主进程接收所述至少一个子进程发送的启动应答消息以及连接建立请求;所述主进程根据所述连接建立请求,发送与所述连接建立请求对应的响应消息到所述至少一个子进程,以使所述至少一个子进程根据接收到的所述响应消息,加载对应的待执行子任务。图3是本发明另一个实施例提供的移动终端的结构示意图。图3所示的移动终端300包括:至少一个处理器301、存储器302、至少一个网络接口304和其他用户接口303。移动终端300中的各个组件通过总线系统305耦合在一起。可理解,总线系统305用于实现这些组件之间的连接通信。总线系统305除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统305。其中,用户接口303可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。可以理解,本发明实施例中的存储器302可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。本文描述的存储器302旨在包括但不限于这些和任意其它适合类型的存储器。在一些实施方式中,存储器302存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统3021和应用程序3022。其中,操作系统3021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序3022,包含各种应用程序,例如媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序3022中。在本发明实施例中,通过调用存储器302存储的程序或指令,具体的,可以是应用程序3022中存储的程序或指令,处理器301用于执行各方法实施例所提供的方法步骤,例如包括:获取主进程的待执行任务信息;判断所述待执行任务信息是否满足设定的子进程创建条件;当所述待执行任务信息满足设定的子进程创建条件时,创建至少一个子进程,所述至少一个子进程具有唯一的子进程标识;所述至少一个子进程为多个子进程中的一个或多个;所述主进程发送启动请求消息到所述至少一个子进程,所述启动请求消息中携带有主进程标识、所述子进程标识以及与所述至少一个子进程对应的待执行子任务;所述主进程接收所述至少一个子进程发送的启动应答消息以及连接建立请求;所述主进程根据所述连接建立请求,发送与所述连接建立请求对应的响应消息到所述至少一个子进程,以使所述至少一个子进程根据接收到的所述响应消息,加载对应的待执行子任务。上述本发明实施例揭示的方法可以应用于处理器301中,或者由处理器301实现。处理器301可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器301可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器302,处理器301读取存储器302中的信息,结合其硬件完成上述方法的步骤。可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(applicationspecificintegratedcircuits,asic)、数字信号处理器(digitalsignalprocessing,dsp)、数字信号处理设备(dspdevice,dspd)、可编程逻辑设备(programmablelogicdevice,pld)、现场可编程门阵列(field-programmablegatearray,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1