CN111078449B - 信息处理方法、信息处理装置及终端设备 - Google Patents
信息处理方法、信息处理装置及终端设备 Download PDFInfo
- Publication number
- CN111078449B CN111078449B CN201911203926.XA CN201911203926A CN111078449B CN 111078449 B CN111078449 B CN 111078449B CN 201911203926 A CN201911203926 A CN 201911203926A CN 111078449 B CN111078449 B CN 111078449B
- Authority
- CN
- China
- Prior art keywords
- thread
- data
- working
- information
- input data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
- G06F11/0724—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3404—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请适用于信息处理技术领域,提供了信息处理方法、信息处理装置、终端设备及计算机可读存储介质,该信息处理方法,包括:在计算***的运行过程中,若通过目标线程检测到异常信号,则将所述异常信号所对应的工作线程作为第一线程,其中,所述计算***包括目标线程和至少两个工作线程,所述目标线程不同于所述工作线程,每一个工作线程分别对应至少一个数据流函数;确定所述第一线程当前运行的数据流函数所对应的第一输入数据信息;根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式。通过上述方法,能够提高多核处理器的信息处理效率。
Description
技术领域
本申请属于信息处理技术领域,尤其涉及信息处理方法、信息处理装置、终端设备及计算机可读存储介质。
背景技术
目前,处理器的发展方向已经从单纯提高处理器运行速度向多核处理器的方向发展,各类分布式***也越来越普遍。而现有的多核处理器往往是采用顺序执行指令的结构进行编程而得到的,在通过多个线程并行地处理多个任务时,难以合理分配各个线程的任务,并且,若信息处理过程中出现异常,也难以快速处理和修复信息处理过程中出现的异常情况,从而降低了多核处理器的信息处理效率。
发明内容
本申请实施例提供了信息处理方法、信息处理装置、终端设备及计算机可读存储介质,可以提高多核处理器的信息处理效率。
第一方面,本申请实施例提供了一种信息处理方法,包括:
在计算***的运行过程中,若通过目标线程检测到异常信号,则将所述异常信号所对应的工作线程作为第一线程,其中,所述计算***包括目标线程和至少两个工作线程,所述目标线程不同于所述工作线程,每一个工作线程分别对应至少一个数据流函数;
确定所述第一线程当前运行的数据流函数所对应的第一输入数据信息;
根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式。
第二方面,本申请实施例提供了一种信息处理装置,包括:
第一处理模块,用于在计算***的运行过程中,若通过目标线程检测到异常信号,则将所述异常信号所对应的工作线程作为第一线程,其中,所述计算***包括目标线程和至少两个工作线程,每一个工作线程对应至少一个数据流函数;
确定模块,用于确定所述第一线程当前运行的数据流函数所对应的第一输入数据信息;
第二处理模块,用于根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器、显示器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如第一方面所述的信息处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的信息处理方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中所述的信息处理方法。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例中,所述计算***包括目标线程和至少两个工作线程,所述目标线程不同于所述工作线程,每一个工作线程分别对应至少一个数据流函数,从而可以通过合理的数据分配和调度来驱动各个线程,高效地实现计算***中的多任务的分配和并行处理;此外,在计算***的运行过程中,若通过目标线程检测到异常信号,则将所述异常信号所对应的工作线程作为第一线程,可以通过所述目标线程来检测异常信号,而不是在所述异常信号导致所述工作线程的异常之后再进行异常数据的分析,从而可以避免计算***的崩溃,提升数据处理过程的稳定性;进一步地,可以确定第一线程所对应的第一输入数据信息,再根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式,此时,可以通过重新运行所得到的运行数据,对所述异常信号的产生原因进行初步排查,例如,可以通过所述重新运行的运行数据判断所述异常信号是否是偶然的***资源不足等原因所引起的,以确定对所述第一线程的数据流函数的处理方式。通过本申请实施例,可以通过多个工作线程及其对应的数据流函数,高效地实现计算***中的多任务的分配和并行处理,并且,可以通过目标线程对异常信号的检测等方式,提升数据处理过程的稳定性,减小对其他工作线程的影响,从而可以提高多核处理器的信息处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种信息处理方法的流程示意图;
图2是本申请一实施例提供的工作流程的一种信息传输示意图;
图3是本申请一实施例提供的步骤S103的一种流程示意图;
图4是本申请一实施例提供的各个工作线程所构成的数据流图的一种示例性结构;
图5是本申请一实施例提供的工作流程的一种信息传输示意图;
图6是本申请一实施例提供的一种信息处理装置的结构示意图;
图7是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
具体地,图1示出了本申请实施例提供的第一种信息处理方法的流程图,该信息处理方法应用于终端设备,所述终端设备中可以具有计算***。
本申请实施例中,所述终端设备可以实现多线程的并行处理。一般来说,所述终端设备可以包括多核处理器。所述终端设备的类型可以有多种,例如,所述终端设备可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等中的至少一种。本申请实施例对终端设备的具体类型不作任何限制。
其中,所述计算***可以为软件***,所述计算***的具体类型、编程语言以及具体架构等可以根据具体应用场景来确定,在此不做限制。
在一些实施例中,所述计算***可以通过数据流编程以及控制流编程等形式来实现。其中,所述控制流编程可以按一定的顺序排列程序元素来决定程序执行的顺序。所述控制流编程中,语句往往按照出现在程序中的顺序执行,以命令的方式为主要驱动。示例性的,诸如Visual BASIC、C语言等编程语言为控制流编程方式。而所述数据流编程是一种可以用于多核处理器的并行编程模型。其中,所述数据库编程所得到的各个数据流函数可以通过数据驱动。因此,通过合理分配,可以使得各个终端设备的核之间的负载较为均衡。示例性的,一个数据流程序的静态实例会按照它的结构被描述成一张有向图。该有向图中节点表示计算单元,边代表数据传输路径。相邻节点间通过边传输数据,节点消耗数据进行计算,并将产生的数据输出到输入输出序列作为下一个计算单元的输入。
因此,在一些实施例中,可以通过数据流的方式,实现对各个工作线程中的数据流函数的驱动。需要说明的是,在各个工作线程中,具体的线程任务的执行可以采用控制流的方式。所述计算***的具体软件编程方式可以根据实际需求进行调整。
如图1所示,所述信息处理方法包括:
步骤S101,在计算***的运行过程中,若通过目标线程检测到异常信号,则将所述异常信号所对应的工作线程作为第一线程,其中,所述计算***包括目标线程和至少两个工作线程,所述目标线程不同于所述工作线程,每一个工作线程分别对应至少一个数据流函数。
本申请实施例中,所述目标线程可以区别于所述工作线程,所述目标线程可以接收诸如中央处理器(central processing unit,CPU)或者***内核等所发出的异常信号,并确定所述异常信号所对应的工作线程。
其中,所述异常信号的产生原因可以有多种,例如,可以是诸如内存溢出、函数栈溢出、数组访问越界等。此时,所述计算***中的指定线程(例如***的主线程)可以发出所述异常信号。
在现有技术中,该异常信号可以被工作线程接收,从而可能会导致程序崩溃,提前结束整个程序的运行,无法得到想要的输出结果。本申请实施例中,可以通过目标线程来接收所述异常信号,而不通过工作线程来接收所述异常信号,此时,各个工作线程不会因为所述异常信号而导致崩溃。从而提升了***的可靠性和稳定性。
示例性的,如表1所示,为所述异常信号的名称以及相应的具体含义的一种具体示例。
表1:
异常信号 | 具体含义 |
SIGALRM | 超时信号 |
SIGFPE | 错误运算信号 |
SIGILL | 无效硬件信号的检测 |
SIGSEGV | 无效内存引用信号 |
......... | ......... |
需要说明的是,上述表1仅为所述一种示例性说明,而不作为对所述异常信号的限定。
具体的,可以在所述工作线程中,设置用于屏蔽所述异常信号的标识,以使得所述异常信号发出后,所述工作线程不会因为该异常信号而崩溃。
在一些实施例中,各个所述工作线程中均设有信号掩码,所述信号掩码用于屏蔽所述异常信号。
其中,所述信号掩码(signal mask)也称为信号屏蔽字,所述信号掩码中规定了当前要屏蔽或要阻塞递送到对应的进程的信号集。
步骤S102,确定所述第一线程当前运行的数据流函数所对应的第一输入数据信息。
本申请实施例中,所述第一线程当前运行的数据流函数是根据对应的第一输入数据来执行相应的数据流任务,而相应的第一输入数据可能是其他某一指定工作线程所产生的输出数据,此时,该指定工作线程在执行其相应的数据流函数而得到输出数据后,将相应的输出数据传递至所述第一线程。
此时,在一些实施例中,为了确保各个数据流函数执行时不会发生传递数据的顺序错乱造成结果混乱、无法还原等情况,以及方便使用人员在数据流任务执行完毕后对中间过程数据的观察,可以对所述第一输入数据进行标记。示例性的,所述第一输入数据的标记可以包含第一输入数据的诸如大小信息、序号信息、来源信息、对应的数据链标识信息、数据有效性标识信息以及对应的数据流函数信息等等。
在一些实施例中,所述第一输入数据可以存储于可动态扩展的内存中,例如,可以存储于相应的数据链中。
此外,可选的,除所述第一线程外的其他工作线程所对应的输入数据信息也可以包含相应的标记。
在一些实施例中,所述第一输入数据信息包括所述第一线程当前运行的数据流函数所对应的第一输入数据的大小信息、序号信息、来源信息、对应的数据链标识信息、数据有效性标识信息以及对应的数据流函数信息中的至少一种。
其中,所述序号信息可以指示所述第一输入数据所对应的生成次序或者存储次序,例如,所述第一输入数据是由所述工作线程中的第二线程生成并传递至所述第一线程,则所述第一输入数据的序号信息可以指示所述第二线程生成所述第一输入数据时,所对应的运行次数。所述数据有效性标识信息可以用于标识该第一输入数据是有效数据还是无效数据,其中,所述无效数据可以对应指示相应的工作线程的数据流函数的运行出现异常。
所述第一输入数据可以存储于相应的数据链中,因此,所述数据链标识信息可以用于标识所述第一输入数据所对应的数据链。示例性的,所述数据链标识信息可以包括数据链的ID等。
示例性的,以下为所述第一输入数据信息的一种示例性信息结构:
数据链ID:D1
数据序号:1
大小:4字节
From:第二线程
To:第一线程
数据内容:…
数据有效性标识:有效数据
步骤S103,根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式。
本申请实施例中,在检测到所述异常信号之后,可以通过重新运行所得到的运行数据,对所述异常信号的产生原因进行初步排查,例如,可以通过所述重新运行的运行数据判断所述异常信号是否是偶然的***资源不足等原因所引起的,以确定对所述第一线程的数据流函数的处理方式。其中,所述处理方式可以有多种,例如,若所述第一运行数据恢复正常,则所述处理方式可以为不调整,而若所述第一运行数据依然存在异常,则可以生成指示开发者调整相应的程序代码的提示信息等等,并对第一线程以及除第一线程之外的其他工作线程进行相应的处理,例如,可以对所述第一线程当前运行的数据流函数进行热修改,或者保持工作线程的持续运行,同时放弃第一线程的本次运行序号所对应的所有工作线程运行数据。其中,可以预先设定重新运行所述第一线程的数据流函数的次数,以避免陷入反复的循环中。
在一些情况下,若所述异常信号是偶然的***资源不足等原因所引起的,那么,通过重新运行所述第一线程的数据流函数,可能可以消除相应的异常,而此时,其他工作线程未收到影响,且所述第一线程也恢复正常,因此,通过本申请实施例,可以提升数据处理过程的稳定性,并提高相应的信息处理效率。
如图2所示,为本申请实施例中的工作流程的一种信息传输示意图。
其中,所述CPU计算单元发出异常信号,所述工作线程N中存在信号掩码,从而屏蔽掉所述异常信号。所述目标线程接收到所述异常信号,并根据所述异常信号定位到出现异常情况的工作线程N。然后,所述目标线程发出重启指令,以指示重新运行所述工作线程N的数据流函数N。
需要说明的是,图2仅为本申请实施例中的信息传输方式的一种示例性说明,而非限定,并且,所述计算***中所包括的单元、模块等可以有其他组成形式,在此不做限定。
在一些实施例中,如图3所示,所述步骤S103可以包括:
步骤S301,根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据;
步骤S302,若所述第一运行数据指示所述第一线程的数据流函数的运行过程存在异常,则重复执行根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据的步骤及后续步骤,直到所述第一运行数据指示所述第一线程的数据流函数的运行过程不存在异常,或者,直到重新运行所述第一线程的数据流函数的次数超过预设次数阈值;
步骤S303,若重新运行所述第一线程的数据流函数的次数超过预设次数阈值,则计算所述第一线程的当前出错率;
步骤S304,若所述第一线程的当前出错率大于预设比值阈值,则结束所述第一线程,并停止运行所述计算***中除所述第一线程之外的其他工作线程,并保持所述其他工作线程当前的第二运行数据不变;
步骤S305,通过动态链接库,获取所述第一线程所对应的数据流函数的程序的更新版本;
步骤S306,根据所述更新版本新建第二线程;
步骤S307,在新建所述第二线程之后,根据所述第一输入数据信息,运行所述第二线程,并根据所述第二运行数据,开始运行所述其他工作线程。
其中,若重新运行所述第一线程的数据流函数的次数超过预设次数阈值,则可以计算所述第一线程的当前出错率是否大于预设的容错率,即大于预设比值阈值。示例性的,在一种具体的应用场景中,所述容错率可以指在视频处理中允许的丢帧的比例。具体的,可以获取所述第一线程的本次运行序号,并获取所述第一线程的本次运行序号和历史运行序号所对应的异常运行次数,将所述异常运行次数与所述本次运行序号的比值作为所述第一线程的当前出错率。
示例性的,若用户预设的容错率(即所述预设比值阈值)为0,则只要出现重新运行所述第一线程的数据流函数的次数超过预设次数阈值,就需要对所述第一线程所对应的数据流函数的程序进行修改。而若用户预设的容错率为1/10,则若所述第一线程的本次运行序号为9,且本次运行出现异常,而前8次运行无异常,则所述第一线程的当前出错率为1/9,高于预设比值阈值,此时,也需要对所述第一线程所对应的数据流函数的程序进行修改。
若认为所述数据流函数可能需要进行代码层面的修改,以克服代码中的问题,因此,可以结束所述第一线程,并停止运行所述计算***中除所述第一线程之外的其他工作线程,并保持所述其他工作线程当前的第二运行数据不变。此时,可以认为其他工作线程处于暂停的状态,而仅仅清除所述第一线程。
本申请实施例中,在预先设计各个工作线程时,各个工作线程所分别对应的数据流函数都可以以动态链接库的形式进行编写,从而在计算***运行时,动态加载相应的数据流函数。进一步的,在清除所述第一线程之后,开发者等只需修改第一线程所对应的数据流函数的动态链接库,提交所述第一线程所对应的数据流函数的程序的更新版本,并将更新版本后的动态链接库替换掉原先的第一线程的动态链接库,即可实现对所述第一线程的代码层面的修改。此时,所述计算***可以根据所述更新版本新建第二线程,并根据所述第一输入数据信息,运行所述第二线程,此时,所述第二线程可以通过更新版本后的数据流函数,根据所述第一输入数据信息,重新执行相应的任务,此时,所述第一输入数据信息可以未被删除。而根据所述第二运行数据,开始运行所述其他工作线程,可以根据所述第二运行数据,使得其他工作线程在之前运行的结果的基础上,继续运行,而无需从初始状态从头开始运行,从而大大提升了运行效率,减少了运行、调试时的时间浪费。
在一些实施例中,所述信息处理方法还包括:
若所述第一线程的当前出错率不大于预设比值阈值,则通过所述第一线程输出第一输出数据,其中,所述第一输出数据中包括指示所述第一输出数据不可用的预设标记和本次运行序号;
将其他工作线程中,与第一线程相关联的工作线程作为关联工作线程,所述关联工作线程中包括数据传递顺序位于所述第一线程之后的后续工作线程;
在本次运行序号所对应的线程运行过程中,根据所述数据传递顺序和所述第一输出数据,通过各个所述后续工作线程依次输出分别对应的第二输出数据,各个所述第二输出数据中分别包括指示对应的第二输出数据不可用的预设标记和本次运行序号;
向所述其他工作线程中除所述关联工作线程之外的不关联工作线程发出第三指令,所述第三指令用于指示本次运行序号所对应的数据流输出出现异常。
在一些应用场景中,若所述第一线程的当前出错率不大于预设比值阈值,则可以认为此时工作线程的异常数据比例可以被用户接受。此时,在本次运行序号所对应的线程运行过程中,各个所述后续工作线程可以依次输出分别对应的第二输出数据,而不运行各个后续工作线程所分别对应的数据流函数,可以节省计算资源。
其中,在一些实施例中,所述第一输出数据中的诸如计算数据部分的内容可以为空,从而减小对存储资源的消耗。所述预设标记可以用于标记所述第一输出数据的有效性。其中,所述关联工作线程可以是数据传递顺序在所述第一线程之前的前驱工作线程、数据传递顺序在所述第一线程之后的所述后续工作线程以及与所述第一线程有其他关联的其他线程中的一种或多种。所述数据流输出可以包括至少一个所述工作线程所对应的数据流函数的输出。该数据传递顺序可以根据各个工作线程所形成的数据流图来确定。所述数据传递顺序可以根据同一运行序号下,各个工作线程的输出数据以及输入数据之间的相互关系来确定。例如,对于同一运行序号的线程运行过程,若工作线程K的输出数据用于驱动工作线程L的数据流函数,即所述工作线程K的输出数据作为所述工作线程L的输入数据,则所述工作线程L为所述工作线程K的一个后续工作线程。其中,一般来说,对于同一运行序号(如本次运行序号),所述第一线程的后续工作线程的任务执行顺序也晚于所述第一线程的后续工作线程。
各个第二输出数据相互之间可以存在差异,也可以相同,第二输出数据与所述第一输出数据之间也可以存在差异或者相同。示例性的,根据对应的后续工作线程的差异,各个第二输出数据之间的来源信息、对应的数据链标识信息、数据有效性标识信息以及对应的数据流函数信息等可以存在差异,但各个第二输入数据中的诸如计算数据部分的内容可以均为空,从而减小对存储资源的消耗。
此外,可以向所述其他工作线程中除所述关联工作线程之外的不关联工作线程发出用于指示本次运行序号所对应的数据流输出出现异常的第三指令,此时,不关联工作线程可以根据该第三指令,执行相应的处理,例如,可以不执行本次运行序号所对应的运行流程,从而可以提高***效率。
在一些实施例中,所述信息处理方法还包括:
在所述计算***的运行过程中,对于任一数据流函数,当检测到所述数据流函数所对应的输入数据符合对应的预设准备条件时,通过对应的工作线程读取所述输入数据,并根据读取到的所述输入数据运行所述数据流函数。
本申请实施例中,所述预设准备条件可以指示所述输入数据完成准备操作和/或对应的数据流函数处于就绪状态。其中,所述输入数据符合对应的预设准备条件时,可以触发相应的工作线程执行相应的数据流函数。通过数据驱动的方式,可以便于对多线程进行任务调度和分配,从而提升了并行处理的效率和易用性。
如图4所示,为本申请实施例中的计算***中,各个工作线程所构成的数据流图的一种示例性结构。其中,包括工作线程A、工作线程B、工作线程C、工作线程D。其中,所述工作线程A对应的数据流函数A由存储于数据链d1中的数据来驱动;所述工作线程B对应的数据流函数B由存储于数据链d2中的数据来驱动;所述工作线程C对应的数据流函数C由数据流函数A所输出的存储于数据链ci1中的数据、数据流函数A所输出的存储于数据链ci2中的数据以及分别存储于数据链ci3至ci16中的数据来驱动,所述工作线程D所对应的数据流函数D由数据流函数C所输出的存储于数据链f1中的数据来驱动,所述数据流函数D的输出可以存储于数据链g1中,然后可以作为所述数据流图的输出。
在一些实施例中,对于任一数据流函数,所述数据流函数所对应的输入数据为初始输入数据,或者,另一数据流函数的输出数据。
本申请实施例中,所述各个工作线程可以组成数据流图,其中,某一工作线程的输出数据可以作为另一工作线程的输入数据。而对于初始线程,该初始线程的数据流函数所对应的输入数据可以为初始输入数据。
在一些实施例中,在通过对应的工作线程读取所述输入数据,并根据读取到的所述输入数据运行所述数据流函数之后,还包括:
在接收到目标指令之后,清除对应的输入数据,其中,所述目标指令指示所述输入数据所对应的数据流函数执行完成。
本申请实施例中,各个工作线程的输入数据可以分别存储于可动态扩展的内存(例如对应的数据链)中。对于任一数据流函数,每当该数据流函数所需的输入数据就绪时,该数据流函数可以从相应的内存中读取所需的输入数据。为了保证在数据流函数出现异常情况时,所需的输入数据不会丢失,本申请实施例中,在数据流函数从相应的内存读取到相应的输入数据之后,先不对这部分输入数据进行清理。仅对应的数据流函数执行完成并发送目标指令之后,才清除对应的输入数据。
通过本申请实施例,保证了即使出现异常情况,依然可以在重启相应的数据流函数、通过更新代码后新建的相应线程重新运行等情况下,通过相应的输入数据还原现场,以保证后续计算的正确性,从而提升数据流执行环境的可靠性。
下面以一个具体示例说明本申请实施例中,工作线程的一种示例性运行过程。
如图5所示,为工作线程M,所述工作线程M由存储于数据链e1中的数据进行驱动。所述数据链e1的数据来自Input9。其中,数据链e1中包括输入数据1、输入数据2、输入数据3和输入数据4,各个输入数据的序号指示其对应的生成次序或者存储次序。所述输入数据1符合对应的预设准备条件时,驱动所述工作线程M读取所述输入数据1,并执行相应的数据流函数M。在所述数据流函数M根据所述输入数据1执行完成之后,再将所述输入数据1从所述数据链e1中删除。然后,在驱动所述工作线程M读取所述输入数据2。
示例性的,所述数据流函数M指示执行取倒数操作,而所述输入数据2为0,而所述数据流函数M所对应的程序设计有误,导致无法执行取倒数操作,此时,会发出异常信号,而目标线程接收所述异常信号并定位到数据流函数M之后,指示重新运行所述数据流函数M。此时,所述输入数据2仍存储于所述数据链e1中。
在重新运行所述数据流函数M达预设次数(如3次)之后,依然产生异常信号,则计算所述第一线程的当前出错率,若用户预设的容错率为10%,而所述当前出错率为15%,则可以提示开发者修改数据流函数M所对应的程序代码,并结束所述工作线程M,并停止运行所述计算***中除所述工作线程M之外的其他工作线程,并保持所述其他工作线程当前的第二运行数据不变。
开发者修改相关代码之后,通过动态链接库,所述数据流函数M更新为数据流函数M2,所述数据流函数M2指示对为0的输入数据取0,而对不为0的输入数据取倒数。此时,通过新建工作线程M2来执行所述数据流函数M2。由于所述输入数据2仍存储于所述数据链e1中,因此,所述工作线程M2读取所述输入数据2,并执行相应的数据流函数M2。
若所述用户预设的容错率为10%,而所述当前出错率为8%,则所述工作线程M不再执行所述数据流函数M,而输出带有指示所述第一输出数据不可用的预设标记(即图中的作废标记)和本次运行序号2的、计算数据内容为空的输出数据X给所述工作线程M的下一个工作线程K,并且工作线程K接收到输出数据X之后,再生成输出数据Y,该输出数据Y也包括带有指示所述第一输出数据不可用的预设标记(即图中的作废标记)和本次运行序号2,并且,该输出数据Y的计算数据内容也可以为空,进一步的,该输出数据Y可以输入给工作线程K的下一个工作线程L,并且,工作线程L根据输出数据Y,可以生成输出数据Z,该输出数据Z也包括带有指示所述第一输出数据不可用的预设标记(即图中的作废标记)和本次运行序号2,并且,该输出数据Z的计算数据内容也可以为空。以此类推,直到遍历每一个后续工作线程。
此外,还可以向所述其他工作线程中除所述关联工作线程之外的不关联工作线程发出第三指令,所述第三指令用于指示本次运行序号2所对应的数据流输出出现异常。不关联工作线程接收到第三指令后,不关联工作线程的对应于本次运行序号2的相关数据也可以作废,从而提高***运行效率。
本申请实施例中,所述计算***包括目标线程和至少两个工作线程,所述目标线程不同于所述工作线程,每一个工作线程分别对应至少一个数据流函数,从而可以通过合理的数据分配和调度来驱动各个线程,从而高效地实现计算***中的多任务的分配和并行处理;此外,在计算***的运行过程中,若通过目标线程检测到异常信号,则将所述异常信号所对应的工作线程作为第一线程,可以通过所述目标线程来检测异常信号,而不是在所述异常信号导致所述工作线程的异常之后再进行异常数据的分析,从而可以避免计算***的崩溃,提升数据处理过程的稳定性;进一步地,可以确定第一线程所对应的第一输入数据信息,再根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式,此时,可以通过重新运行所得到的运行数据,对所述异常信号的产生原因进行初步排查,例如,可以通过所述重新运行的运行数据判断所述异常信号是否是偶然的***资源不足等原因所引起的,以确定对所述第一线程的数据流函数的处理方式。通过本申请实施例,可以通过多个工作线程及其对应的数据流函数,高效地实现计算***中的多任务的分配和并行处理,并且,可以通过目标线程对异常信号的检测等方式,提升数据处理过程的稳定性,减小对其他工作线程的影响,从而可以提高多核处理器的信息处理效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的信息处理方法,图6示出了本申请实施例提供的一种信息处理装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图6,该信息处理装置6包括:
第一处理模块601,用于在计算***的运行过程中,若通过目标线程检测到异常信号,则将所述异常信号所对应的工作线程作为第一线程,其中,所述计算***包括目标线程和至少两个工作线程,每一个工作线程对应至少一个数据流函数;
确定模块602,用于确定所述第一线程当前运行的数据流函数所对应的第一输入数据信息;
第二处理模块603,用于根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式。
可选的,所述第二处理模块603具体包括:
第一处理单元,用于根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据;
第二处理单元,用于若所述第一运行数据指示所述第一线程的数据流函数的运行过程存在异常,则重复执行根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据的步骤及后续步骤,直到所述第一运行数据指示所述第一线程的数据流函数的运行过程不存在异常,或者,直到重新运行所述第一线程的数据流函数的次数超过预设次数阈值;
第三处理单元,用于若重新运行所述第一线程的数据流函数的次数超过预设次数阈值,则计算所述第一线程的当前出错率;
第四处理单元,用于若所述第一线程的当前出错率大于预设比值阈值,则结束所述第一线程,并停止运行所述计算***中除所述第一线程之外的其他工作线程,并保持所述其他工作线程当前的第二运行数据不变;
获取单元,用于通过动态链接库,获取所述第一线程所对应的数据流函数的程序的更新版本;
新建单元,用于根据所述更新版本新建第二线程;
运行单元,用于在新建所述第二线程之后,根据所述第一输入数据信息,运行所述第二线程,并根据所述第二运行数据,开始运行所述其他工作线程。
可选的,该信息处理装置6还包括:
第五处理单元,用于若所述第一线程的当前出错率不大于预设比值阈值,则通过所述第一线程输出第一输出数据,其中,所述第一输出数据中包括指示所述第一输出数据不可用的预设标记和本次运行序号;
第六处理单元,用于将其他工作线程中,与第一线程相关联的工作线程作为关联工作线程,所述关联工作线程中包括数据传递顺序位于所述第一线程之后的后续工作线程;
传递单元,用于在本次运行序号所对应的线程运行过程中,根据所述数据传递顺序和所述第一输出数据,通过各个所述后续工作线程依次输出分别对应的第二输出数据,各个所述第二输出数据中分别包括指示对应的第二输出数据不可用的预设标记和本次运行序号;
发送单元,用于向所述其他工作线程中除所述关联工作线程之外的不关联工作线程发出第三指令,所述第三指令用于指示本次运行序号所对应的数据流输出出现异常。
可选的,各个所述工作线程中均设有信号掩码,所述信号掩码用于屏蔽所述异常信号。
可选的,所述第一输入数据信息包括所述第一线程当前运行的数据流函数所对应的第一输入数据的大小信息、序号信息、来源信息、对应的数据链标识信息、数据有效性标识信息以及对应的数据流函数信息中的至少一种。
可选的,该信息处理装置6还包括:
第三处理模块,用于在所述计算***的运行过程中,对于任一数据流函数,当检测到所述数据流函数所对应的输入数据符合对应的预设准备条件时,通过对应的工作线程读取所述输入数据,并根据读取到的所述输入数据运行所述数据流函数。
可选的,对于任一数据流函数,所述数据流函数所对应的输入数据为初始输入数据,或者,另一数据流函数的输出数据。
可选的,该信息处理装置6还包括:
清除模块,用于在接收到目标指令之后,清除对应的输入数据,其中,所述目标指令指示所述输入数据所对应的数据流函数执行完成。
本申请实施例中,所述计算***包括目标线程和至少两个工作线程,所述目标线程不同于所述工作线程,每一个工作线程分别对应至少一个数据流函数,从而可以通过合理的数据分配和调度来驱动各个线程,从而高效地实现计算***中的多任务的分配和并行处理;此外,在计算***的运行过程中,若通过目标线程检测到异常信号,则将所述异常信号所对应的工作线程作为第一线程,可以通过所述目标线程来检测异常信号,而不是在所述异常信号导致所述工作线程的异常之后再进行异常数据的分析,从而可以避免计算***的崩溃,提升数据处理过程的稳定性;进一步地,可以确定第一线程所对应的第一输入数据信息,再根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式,此时,可以通过重新运行所得到的运行数据,对所述异常信号的产生原因进行初步排查,例如,可以通过所述重新运行的运行数据判断所述异常信号是否是偶然的***资源不足等原因所引起的,以确定对所述第一线程的数据流函数的处理方式。通过本申请实施例,可以通过多个工作线程及其对应的数据流函数,高效地实现计算***中的多任务的分配和并行处理,并且,可以通过目标线程对异常信号的检测等方式,提升数据处理过程的稳定性,减小对其他工作线程的影响,从而可以提高多核处理器的信息处理效率。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图7为本申请一实施例提供的终端设备的结构示意图。如图7所示,该实施例的终端设备7包括:至少一个处理器70(图7中仅示出一个,但所述处理器70可以有多个)、存储器71以及存储在上述存储器71中并可在上述至少一个处理器70上运行的计算机程序72,上述处理器70执行上述计算机程序72时实现上述任意各个信息处理方法实施例中的步骤。
上述终端设备7可以是可穿戴设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的举例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入设备、输出设备、网络接入设备等。其中,上述输入设备可以包括键盘、触控板、指纹采集传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风、摄像头等,输出设备可以包括显示器、扬声器等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),该处理器70还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器71在一些实施例中可以是上述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。上述存储器71在另一些实施例中也可以是上述终端设备7的外部存储设备,例如上述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器71还可以既包括上述终端设备7的内部存储单元也包括外部存储设备。上述存储器71用于存储操作***、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如上述计算机程序的程序代码等。上述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
另外,尽管未示出,上述终端设备7还可以包括网络连接模块,如蓝牙模块Wi-Fi模块、蜂窝网络模块等等,在此不再赘述。
本申请实施例中,上述处理器70执行上述计算机程序72以实现上述任意各个信息处理方法实施例中的步骤时,所述计算***包括目标线程和至少两个工作线程,所述目标线程不同于所述工作线程,每一个工作线程分别对应至少一个数据流函数,从而可以通过合理的数据分配和调度来驱动各个线程,从而高效地实现计算***中的多任务的分配和并行处理;此外,在计算***的运行过程中,若通过目标线程检测到异常信号,则将所述异常信号所对应的工作线程作为第一线程,可以通过所述目标线程来检测异常信号,而不是在所述异常信号导致所述工作线程的异常之后再进行异常数据的分析,从而可以避免计算***的崩溃,提升数据处理过程的稳定性;进一步地,可以确定第一线程所对应的第一输入数据信息,再根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式,此时,可以通过重新运行所得到的运行数据,对所述异常信号的产生原因进行初步排查,例如,可以通过所述重新运行的运行数据判断所述异常信号是否是偶然的***资源不足等原因所引起的,以确定对所述第一线程的数据流函数的处理方式。通过本申请实施例,可以通过多个工作线程及其对应的数据流函数,高效地实现计算***中的多任务的分配和并行处理,并且,可以通过目标线程对异常信号的检测等方式,提升数据处理过程的稳定性,减小对其他工作线程的影响,从而可以提高多核处理器的信息处理效率。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (9)
1.一种信息处理方法,其特征在于,包括:
在计算***的运行过程中,若通过目标线程检测到异常信号,则将所述异常信号所对应的工作线程作为第一线程,其中,所述计算***包括目标线程和至少两个工作线程,所述目标线程不同于所述工作线程,每一个工作线程分别对应至少一个数据流函数;
确定所述第一线程当前运行的数据流函数所对应的第一输入数据信息;
根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式;
所述根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式,包括:
根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据;
若所述第一运行数据指示所述第一线程的数据流函数的运行过程存在异常,则重复执行根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据的步骤及后续步骤,直到所述第一运行数据指示所述第一线程的数据流函数的运行过程不存在异常,或者,直到重新运行所述第一线程的数据流函数的次数超过预设次数阈值;
若重新运行所述第一线程的数据流函数的次数超过预设次数阈值,则计算所述第一线程的当前出错率;
若所述第一线程的当前出错率大于预设比值阈值,则结束所述第一线程,并停止运行所述计算***中除所述第一线程之外的其他工作线程,并保持所述其他工作线程当前的第二运行数据不变;
通过动态链接库,获取所述第一线程所对应的数据流函数的程序的更新版本;
根据所述更新版本新建第二线程;
在新建所述第二线程之后,根据所述第一输入数据信息,运行所述第二线程,并根据所述第二运行数据,开始运行所述其他工作线程。
2.如权利要求1所述的信息处理方法,其特征在于,还包括:
若所述第一线程的当前出错率不大于预设比值阈值,则通过所述第一线程输出第一输出数据,其中,所述第一输出数据中包括指示所述第一输出数据不可用的预设标记和本次运行序号;
将其他工作线程中,与第一线程相关联的工作线程作为关联工作线程,所述关联工作线程中包括数据传递顺序位于所述第一线程之后的后续工作线程;
在本次运行序号所对应的线程运行过程中,根据所述数据传递顺序和所述第一输出数据,通过各个所述后续工作线程依次输出分别对应的第二输出数据,各个所述第二输出数据中分别包括指示对应的第二输出数据不可用的预设标记和本次运行序号;
向所述其他工作线程中除所述关联工作线程之外的不关联工作线程发出第三指令,所述第三指令用于指示本次运行序号所对应的数据流输出出现异常。
3.如权利要求1所述的信息处理方法,其特征在于,各个所述工作线程中均设有信号掩码,所述信号掩码用于屏蔽所述异常信号。
4.如权利要求1所述的信息处理方法,其特征在于,所述第一输入数据信息包括所述第一线程当前运行的数据流函数所对应的第一输入数据的大小信息、序号信息、来源信息、对应的数据链标识信息、数据有效性标识信息以及对应的数据流函数信息中的至少一种。
5.如权利要求1至4任意一项所述的信息处理方法,其特征在于,还包括:
在所述计算***的运行过程中,对于任一数据流函数,当检测到所述数据流函数所对应的输入数据符合对应的预设准备条件时,通过对应的工作线程读取所述输入数据,并根据读取到的所述输入数据运行所述数据流函数。
6.如权利要求5所述的信息处理方法,其特征在于,在通过对应的工作线程读取所述输入数据,并根据读取到的所述输入数据运行所述数据流函数之后,还包括:
在接收到目标指令之后,清除对应的输入数据,其中,所述目标指令指示所述输入数据所对应的数据流函数执行完成。
7.一种信息处理装置,其特征在于,包括:
第一处理模块,用于在计算***的运行过程中,若通过目标线程检测到异常信号,则将所述异常信号所对应的工作线程作为第一线程,其中,所述计算***包括目标线程和至少两个工作线程,每一个工作线程对应至少一个数据流函数;
确定模块,用于确定所述第一线程当前运行的数据流函数所对应的第一输入数据信息;
第二处理模块,用于根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据,并根据所述第一运行数据确定对所述第一线程的数据流函数的处理方式;
所述第二处理模块包括:
第一处理单元,用于根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据;
第二处理单元,用于若所述第一运行数据指示所述第一线程的数据流函数的运行过程存在异常,则重复执行根据所述第一输入数据信息,重新运行所述第一线程的数据流函数,获得第一运行数据的步骤及后续步骤,直到所述第一运行数据指示所述第一线程的数据流函数的运行过程不存在异常,或者,直到重新运行所述第一线程的数据流函数的次数超过预设次数阈值;
第三处理单元,用于若重新运行所述第一线程的数据流函数的次数超过预设次数阈值,则计算所述第一线程的当前出错率;
第四处理单元,用于若所述第一线程的当前出错率大于预设比值阈值,则结束所述第一线程,并停止运行所述计算***中除所述第一线程之外的其他工作线程,并保持所述其他工作线程当前的第二运行数据不变;
获取单元,用于通过动态链接库,获取所述第一线程所对应的数据流函数的程序的更新版本;
新建单元,用于根据所述更新版本新建第二线程;
运行单元,用于在新建所述第二线程之后,根据所述第一输入数据信息,运行所述第二线程,并根据所述第二运行数据,开始运行所述其他工作线程。
8.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的信息处理方法。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的信息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911203926.XA CN111078449B (zh) | 2019-11-29 | 2019-11-29 | 信息处理方法、信息处理装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911203926.XA CN111078449B (zh) | 2019-11-29 | 2019-11-29 | 信息处理方法、信息处理装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078449A CN111078449A (zh) | 2020-04-28 |
CN111078449B true CN111078449B (zh) | 2020-11-13 |
Family
ID=70312299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911203926.XA Active CN111078449B (zh) | 2019-11-29 | 2019-11-29 | 信息处理方法、信息处理装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078449B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691231A (zh) * | 2020-12-29 | 2022-07-01 | 深圳云天励飞技术股份有限公司 | 一种数据流水编排方法、装置、可读存储介质及终端设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462437A (zh) * | 2014-03-27 | 2017-02-22 | 国际商业机器公司 | 用于管理计算机中的多个线程的控制区 |
CN107562544A (zh) * | 2017-09-08 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种信号处理的方法及装置 |
CN109933459A (zh) * | 2017-12-18 | 2019-06-25 | 北京京东尚科信息技术有限公司 | 一种多任务的执行方法和装置 |
CN110413432A (zh) * | 2019-07-02 | 2019-11-05 | Oppo广东移动通信有限公司 | 一种信息处理方法、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7765547B2 (en) * | 2004-11-24 | 2010-07-27 | Maxim Integrated Products, Inc. | Hardware multithreading systems with state registers having thread profiling data |
US20120290883A1 (en) * | 2010-11-11 | 2012-11-15 | Nec Laboratories America, Inc. | Computer Implemented Method for Precise May-Happen-in-Parallel Analysis with Applications to Dataflow Analysis of Concurrent Programs |
CN109408214A (zh) * | 2018-11-06 | 2019-03-01 | 北京字节跳动网络技术有限公司 | 一种数据的并行处理方法、装置、电子设备及可读介质 |
-
2019
- 2019-11-29 CN CN201911203926.XA patent/CN111078449B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462437A (zh) * | 2014-03-27 | 2017-02-22 | 国际商业机器公司 | 用于管理计算机中的多个线程的控制区 |
CN107562544A (zh) * | 2017-09-08 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种信号处理的方法及装置 |
CN109933459A (zh) * | 2017-12-18 | 2019-06-25 | 北京京东尚科信息技术有限公司 | 一种多任务的执行方法和装置 |
CN110413432A (zh) * | 2019-07-02 | 2019-11-05 | Oppo广东移动通信有限公司 | 一种信息处理方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111078449A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8832666B2 (en) | Dynamic instrumentation | |
CN113377348B (zh) | 应用于任务引擎的任务调整方法、相关装置和存储介质 | |
US9355002B2 (en) | Capturing trace information using annotated trace output | |
CN104412232A (zh) | 事务处理 | |
CN111190741B (zh) | 基于深度学习节点计算的调度方法、设备及存储介质 | |
CN104380246A (zh) | 事务执行中的程序中断筛选 | |
US20240045787A1 (en) | Code inspection method under weak memory ordering architecture and corresponding device | |
US20140215483A1 (en) | Resource-usage totalizing method, and resource-usage totalizing device | |
US9870314B1 (en) | Update testing by build introspection | |
WO2021218208A1 (zh) | 一种资源分配方法、装置、存储介质和电子设备 | |
CN103154885A (zh) | 在没有管理程序介入的情况下获得和释放硬件线程 | |
CN111078449B (zh) | 信息处理方法、信息处理装置及终端设备 | |
US9646252B2 (en) | Template clauses based SAT techniques | |
CN110674050B (zh) | 内存越界检测方法、装置、电子设备及计算机存储介质 | |
CN110908644B (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN115905040B (zh) | 计数器的处理方法、图形处理器、设备及存储介质 | |
US20140137083A1 (en) | Instrumenting computer program code by merging template and target code methods | |
CN110764745A (zh) | 变量的传输和收集方法、装置及计算机可读存储介质 | |
CN110825461A (zh) | 数据处理方法和装置 | |
US20110191775A1 (en) | Array-based thread countdown | |
US20160110170A1 (en) | Message inlining | |
CN115981808A (zh) | 调度方法、装置、计算机设备和存储介质 | |
US9218272B2 (en) | System level architecture verification of a transactional execution | |
CN114048125A (zh) | 一种测试用例确定方法、装置、计算设备及存储介质 | |
CN112766829A (zh) | 一种业务处理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |