流程控制方法及装置、计算机可读存储介质、终端制造方法及图纸

技术编号:16501205 阅读:22 留言:0更新日期:2017-11-04 11:50
一种流程控制方法及装置、计算机可读存储介质、终端,所述方法包括:当出现新增事件节点时,判断对应的流程栈是否已满;当确定所述流程栈已满时,为所述流程栈申请增加对应的存储空间;当对应的存储空间申请成功时,将所述新增事件节点压入所述流程栈的栈顶。上述的方案,可以提高流程控制的可靠性。

Process control method and device, computer readable storage medium and terminal

A flow control method and device, computer readable storage medium and terminal. The method includes: when a new event node, determine the corresponding process whether the stack is full; when it is determined that the process stack is full, for the process to apply for an increase of the corresponding stack storage space; when the storage space corresponding to the application when will the new event process pressed into the top of the stack. The above scheme can improve the reliability of process control.

【技术实现步骤摘要】
流程控制方法及装置、计算机可读存储介质、终端
本专利技术涉及流程控制
,特别是涉及一种流程控制方法及装置、计算机可读存储介质、终端。
技术介绍
为降低对国外技术的依赖度,目前从硬件到软件,从底层操作系统到上层各应用,国产化的呼声日渐高涨;而对于对外依赖度较高的金融行业,国产化的需求及趋势也越来越明显。为了适用于国产化操作系统,金融行业的诸多应用需要做向国产化系统迁移的工作。一切应用的实际本质说到底都是流程控制,与编程语言类似,应用的流程也分为顺序流程、循环流程和分支流程。而对于流程的流转,分支流程是流程控制中最复杂且最具神秘感的流程控制方式。根据所对应提供的功能多少,采用分支流程的应用更是在流程控制方面需要下很大功夫完善其运行,避免出现设计之外的问题。分支流程可分为同步阻塞流程与异步非阻塞流程。其中,对于同步阻塞流程,一般采用递归调用来进行流程控制。但是,在采用递归调用进行流程控制时,存在着流程控制可靠性差的问题。
技术实现思路
本专利技术实施例解决的技术问题是在提高流程控制的可靠性。为解决上述问题,本专利技术实施例提供了一种流程控制方法,所述流程包括多个事件节点,所述方法包括:当出现新增事件节点时,判断对应的流程栈是否已满;当确定所述流程栈已满时,为所述流程栈申请增加对应的存储空间;当对应的存储空间申请成功时,将所述新增事件节点压入所述流程栈的栈顶。可选地,所述对应的存储空间大于或等于所述新增事件节点所占的存储空间。可选地,所述方法还包括:取出所述流程栈栈顶的事件节点并进行处理。可选地,所述流程为同步阻塞流程。本专利技术实施例还提供了一种流程控制装置,所述流程包括多个事件节点,所述装置包括:判断单元,适于当出现新增事件节点时,判断对应的流程栈是否已满;请求单元,当确定所述流程栈已满时,为所述流程栈申请增加对应的存储空间;控制单元,适于当对应的存储空间申请成功时,将所述新增事件节点压入所述流程栈的栈顶。可选地,所述对应的存储空间大于或等于所述新增事件节点所占的存储空间。可选地,所述装置还包括:处理单元,适于取出所述流程栈栈顶的事件节点并进行处理。可选地,所述流程为同步阻塞流程。本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一项所述的流程控制方法的步骤。本专利技术实施例还提供了一种终端,包括存储器和处理器,所述存储器上储存有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一项所述的流程控制方法的步骤。与现有技术相比,本专利技术的技术方案具有以下的优点:上述的方案,通过基于流程中的事件节点的数量,对对应的流程栈所占的存储空间进行调整,可以有效避免流程栈溢出情形的发生,提高流程控制的可靠性。附图说明图1是本专利技术实施例中的一种流程控制方法的流程图;图2是本专利技术实施例中另一种流程控制方法的入栈和出栈操作的示意图;图3是本专利技术实施例中的一种流程控制装置的结构示意图。具体实施方式现有技术中,一般采用递归调用来进行同步阻塞流程的流程控制。但是,因各不同操作系统分配给应用的栈空间是不确定且相对较小的,当递归调用层级太深时,易导致系统栈溢出风险的发生,从而发生应用崩溃甚至系统出错的情况,存在着可靠性差的问题。为解决现有技术中存在的上述问题,本专利技术实施例采用的技术方案基于流程中的事件节点的数量,对对应的流程栈所占的存储空间进行调整,可以有效避免流程栈溢出情形的发生,提高流程控制的可靠性。为使本专利技术的上述目的、特征和优点能够更为明显易懂,下面结合附图对本专利技术的具体实施例做详细的说明。在具体实施中,为了避免不同的应用在不同的操作系统环境下迁移时,发生栈溢出的风险,图1示出了本专利技术实施例中的一种流程控制方法的流程图。如图1所示的流程控制方法,适于对同步阻塞流程中的事件节点进行控制,具体可以包括如下的操作:步骤S101:当出现新增事件节点时,判断对应的流程栈是否已满;当判断结果为是时,可以执行步骤S102;反之,则可以直接执行步骤S104。在具体实施中,对于一个同步阻塞流程,当流程控制开始时,系统分配给对应的流程栈的存储空间可以根据实际的需要进行设置。在本专利技术一实施例中,在流程控制刚开始时,系统分配对对应的流程栈的存储空间为零,也即同步阻塞流程对应的流程栈的栈顶指针和栈底指针指向同一个地址。其中,在执行同步阻塞流程中的过程中,当产生一个新增事件节点需要压入流程栈中等待处理时,需要首先判断对应的流程栈是否已满。其中,在判断对应的流程栈是否已满时,可以通过流程栈的栈顶指针指向的地址和栈底指针指向的地址之间的差值进行判断。具体而言,当栈顶指针指向的地址减去栈底指针指向的地址之间的差值小于系统当前分配给流程栈的存储空间的大小时,可以确定流程栈未满;当栈顶指针指向的地址减去栈底指针指向的地址之间的差值等于系统当前分配给流程栈的存储空间的大小时,可以确定流程栈已满。步骤S102:当确定所述流程栈已满时,为所述流程栈申请增加对应的存储空间。在具体实施中,当确定对应的流程栈已满时,将出现的新增事件节点压入流程栈的栈顶将会发生栈溢出的风险,为了避免此种情况的出现,可以首先向系统申请为流程栈增加对应的存储空间,以存储新增事件节点。其中,当确定所述流程栈已满时,向系统申请增加的存储空间的大小可以根据实际的需要进行设置。在本专利技术一实施例中,为了提高存储空间的利用效率,在每次确定流程栈已满时,向系统申请增加的存储空间足够容纳新增事件节点即可,即每当产生一个新增事件节点时,为所述新增事件节点申请一个事件节点对应的存储空间。在本专利技术另一实施例中,为了提高流程控制的效率,可以在产生一个新增事件节点时,向系统所申请增加的存储空间大于一个新增事件节点对应的存储空间,如申请5个事件节点对应的存储空间。那么,在后续的4个事件节点产生时,将无需向系统再次申请存储空间,可以直接进行入栈操作。步骤S103:当对应的存储空间申请成功时,将所述新增事件节点压入所述流程栈的栈顶。在具体实施中,当对应的存储空间申请成功时,便可以将所述新增事件节点压缩所述流程栈的栈顶,也即将所述新增事件节点作为流程栈的新的栈顶。步骤S104:将所述新增事件节点压入所述流程栈的栈顶。在具体实施中,当确定流程栈未满时,直接执行将新增事件节点的入栈操作,也即将新增事件节点压入流程栈的栈顶,将不会发生栈溢出的情形。因此,直接将新增事件节点压入所述流程栈的栈顶即可。在本专利技术一实施例中,步骤S103和步骤S104中将所述新增事件节点压入所述流程栈的栈顶的操作采用呼叫(CallFlow)流程执行。具体而言,阻塞调用另外一个流程的事件节点,即CallFlow节点,在调用完成后等待CallFlow节点执行结束,CallFlow节点的返回值作为[xg1]的输入,并执行新增事件节点的入栈操作。[xg2]在具体实施中,在对流程栈中的事件节点进行处理时,可以按照顺序首先取出所述流程栈栈顶的事件节点并执行相应的处理操作。其中,可以采用返回(Return)流程执行流程栈中的事件节点的出栈处理。参见图2,假定流程栈中已有事件节点1至事件节点N,其中,N为大于等于1的整数。当新增事件节点N+1产生时,可以首先基于作为流程栈的栈底元素的事件节点1指向的地址,以及作为流本文档来自技高网...
流程控制方法及装置、计算机可读存储介质、终端

【技术保护点】
一种流程控制方法,所述流程包括多个事件节点,其特征在于,包括:当出现新增事件节点时,判断对应的流程栈是否已满;当确定所述流程栈已满时,为所述流程栈申请增加对应的存储空间;当对应的存储空间申请成功时,将所述新增事件节点压入所述流程栈的栈顶。

【技术特征摘要】
1.一种流程控制方法,所述流程包括多个事件节点,其特征在于,包括:当出现新增事件节点时,判断对应的流程栈是否已满;当确定所述流程栈已满时,为所述流程栈申请增加对应的存储空间;当对应的存储空间申请成功时,将所述新增事件节点压入所述流程栈的栈顶。2.根据权利要求1所述的流程控制方法,其特征在于,所述对应的存储空间大于或等于所述新增事件节点所占的存储空间。3.根据权利要求1所述的流程控制方法,其特征在于,还包括:取出所述流程栈栈顶的事件节点并进行处理。4.根据要求1所述的流程控制方法,其特征在于,所述流程为同步阻塞流程。5.一种流程控制装置,所述流程包括多个事件节点,其特征在于,包括:判断单元,适于当出现新增事件节点时,判断对应的流程栈是否已满;请求单元,当确定所述流程栈已满时,为所述流程栈申请增加对...

【专利技术属性】
技术研发人员:王红娟张金清王玉奎
申请(专利权)人:浪潮金融信息技术有限公司
类型:发明
国别省市:江苏,32

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

1