CN105824703B - 一种线程管理方法和线程管理器 - Google Patents
一种线程管理方法和线程管理器 Download PDFInfo
- Publication number
- CN105824703B CN105824703B CN201610193108.6A CN201610193108A CN105824703B CN 105824703 B CN105824703 B CN 105824703B CN 201610193108 A CN201610193108 A CN 201610193108A CN 105824703 B CN105824703 B CN 105824703B
- Authority
- CN
- China
- Prior art keywords
- thread
- alternative
- arbitration rules
- subject
- rule
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种线程管理方法和线程管理器,通过依据第一预设仲裁规则选择一个线程作为备选线程;依据第二预设仲裁规则选择一个备选线程作为目标线程;通过对所述第一预设仲裁规则和第二预设仲裁规则进行合理设置,可有效降低所述被挂起的目标线程的数量,从而提高了线程处理的性能。
Description
技术领域
本发明涉线程管理机制技术领域,具体涉及一种线程管理方法和线程管理器。
背景技术
在传统的硬件系统中,存在一种硬件体系,该硬件体系虽然只有一个数据通路,但是需要并行运行多个线程。该硬件体系设计的好坏取决于如何有效的分配数据通路运行那个线程。该硬件体系通常采用多级有限状态机(Finite-state machine,FSM,以下简称FSM)实现该硬件体系的线程管理,顶层FSM如图1所示,包括:
IDLE:空闲状态
RUN_DL:执行线程中没有数据依赖的命令,检查线程是否执行完成,读取下一条命令,确定是否具备预定条件;
RUN_DD:执行线程中有数据依赖的命令,检查线程是否执行完成,读取下一条命令,确定是否具备预定条件;
HOLD:所有当前无法执行的线程会进入该状态,等待预定条件满足,通过硬件仲裁的方式选择线程。
参见上述方案可见,由于RUN_DD在选择执行的线程时,通常是依据生成时间顺序选取的,并没有设置合理的线程选取规则,因此,降低导致线程处理的性能。
发明内容
有鉴于此,本发明实施例提供一种线程管理方法和线程管理器,以优化线程处理性能。
为实现上述目的,本发明实施例提供如下技术方案:
一种线程管理方法,包括:
依据第一预设仲裁规则选择一个线程作为备选线程,将所述备选线程导入备选线程集合;
依据第二预设仲裁规则由所述备选线程集合中选择一个备选线程作为目标线程;
执行所述目标线程;
当执行到所述目标线程中不满足预定条件,将所述目标线程挂起,将挂起后的目标线程导入监控线程集合;
继续依据第一预设仲裁规则选择一个线程作为备选线程,将所述备选线程导入备选线程集合;依据第二预设仲裁规则由所述备选线程集合中选择一个备选线程作为目标线程。
优选的,上述线程管理方法中,将所述目标线程挂起后,还包括:
实时监测监控线程集合中是否存在满足预定条件的目标线程,如果是,将满足预定条件的目标线程作为暂停线程导入暂停线程集合;
依据第三预设仲裁规则由所述暂停线程集合中选择一个暂停线程作为备选线程并导入所述备选线程集合。
优选的,上述线程管理方法中,所述依据第一预设仲裁规则选择一个线程作为备选线程之前,还包括:
判断是否获取到仲裁规则选择指令,如果是,由仲裁规则数据库中选择至少一个与所述仲裁规则选择指令相匹配的备选规则,将所述备选规则作为与其匹配的第一预设仲裁规则、第二预设仲裁规则或第三预设仲裁规则。
优选的,上述线程管理方法中,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第一备选规则,所述第一备选规则为:
获取各个线程的优先级标识;
依据所述优先级标识判断各个线程的优先级;
选择优先级最高的线程作为备选线程。
优选的,上述线程管理方法中,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第二备选规则,所述第二备选规则为:
判断各个线程与所述监控线程集合中的所述目标线程的相关度;
将与所述监控线程集合中的目标线程的相关度最高的线程作为备选线程。
优选的,上述线程管理方法中,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第三备选规则,所述第三备选规则为:
判断各个线程的生成时间;
将生成时间最早的线程作为备选线程。
优选的,上述线程管理方法中,所述仲裁规则数据库的备选规则至少包括与所述第二预设仲裁规则相匹配的第四备选规则,所述第四备选规则为:
判断所述备选线程集合中是否存在已经过处理过的备选线程,如果存在,优先选择已经处理过的备选线程作为目标线程。
优选的,上述线程管理方法中,所述仲裁规则数据库的备选规则至少包括与所述第二预设仲裁规则相匹配的第五备选规则,所述第五备选规则为:
判断所述监控线程集合中目标线程的数量是否大于预设值,如果是,选择所述备选线程集合中与所有的所述监控线程集合中的目标线程的相关度最高的备选线程作为目标线程;如果否,判断所述备选线程集合中是否存在已经过处理过的备选线程,如果存在,优先选择已经处理过的线程作为目标线程。
优选的,上述线程管理方法中,所述仲裁规则数据库的备选规则至少包括与所述第三预设仲裁规则相匹配的第六备选规则,所述第六备选规则为:
判断暂停线程集合中各个暂停线程的生成时间;
将生成时间最早的所述暂停线程作为备选线程。
优选的,上述线程管理方法中,还包括:
实时检测并输出总的所述备选线程的数量和各个未处理线程的ID、总的所述目标线程的数量和各个目标线程的ID、总的被挂起的目标线程的数量和各个被挂起的目标线程的ID、总的暂停线程的数量和各个暂停线程的ID。
一种线程管理器,包括:新命令仲裁器、最后仲裁器和执行器;
所述新命令仲裁器,用于依据第一预设仲裁规则选择一个线程作为备选线程,将所述备选线程导入备选线程集合;
所述最后仲裁器,用于当获取到触发信号后依据第二预设仲裁规则由所述备选线程集合中选择一个备选线程作为目标线程;
执行器,用于执行所述目标线程,当执行到所述目标线程中不满足预定条件,将所述目标线程挂起,将挂起后的目标线程导入监控线程集合,当所述目标线程执行完毕或挂起后向所述最后仲裁器发送触发信号。
优选的,上述线程管理器中,还包括:暂停序列管理器和暂停命令仲裁器;
所述暂停序列管理器,用于实时监测监控线程集合中是否存在满足预定条件的目标线程,如果是,将满足预定条件的目标线程作为暂停线程导入暂停线程集合;
所述暂停命令仲裁器,用于依据第三预设仲裁规则由所述暂停线程集合中选择一个暂停线程作为备选线程并导入所述备选线程集合。
优选的,上述线程管理器中,还包括:
仲裁规则选择器,用于判断是否获取到仲裁规则选择指令,如果是,由仲裁规则数据库中选择至少一个与所述仲裁规则选择指令相匹配的备选规则,将所述备选规则作为与其匹配的第一预设仲裁规则、第二预设仲裁规则或第三预设仲裁规则;
存储器,用于存储所述仲裁规则数据库。
优选的,上述线程管理器中,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第一备选规则,所述第一备选规则为:
获取各个线程的优先级标识;
依据所述优先级标识判断各个线程的优先级;
选择优先级最高的线程作为备选线程。
优选的,上述线程管理器中,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第二备选规则,所述第二备选规则为:
判断各个线程与所有的所述监控线程集合中的目标线程的相关度;
将与所述监控线程集合中的目标线程的相关度最高的线程作为备选线程。
优选的,上述线程管理器中,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第三备选规则,所述第三备选规则为:
判断各个线程的生成时间;
将生成时间最早的所述线程作为备选线程。
优选的,上述线程管理器中,所述仲裁规则数据库的备选规则至少包括与所述第二预设仲裁规则相匹配的第四备选规则,所述第四备选规则为:
判断所述备选线程集合中是否存在已经过处理过的备选线程,如果存在,优先选择已经处理过的备选线程作为目标线程。
优选的,上述线程管理器中,所述仲裁规则数据库的备选规则至少包括与所述第二预设仲裁规则相匹配的第五备选规则,所述第五备选规则为:
判断所述监控线程集合中目标线程的数量是否大于预设值,如果是,选择所述备选线程集合中与所有的所述监控线程集合中的目标线程的相关度最高的备选线程作为目标线程;如果否,判断所述备选线程集合中是否存在已经过处理过的备选线程,如果存在,优先选择已经处理过的线程作为目标线程。
优选的,上述线程管理器中,所述仲裁规则数据库的备选规则至少包括与所述第三预设仲裁规则相匹配的第六备选规则,所述第六备选规则为:
判断暂停线程集合中各个暂停线程的生成时间;
将生成时间最早的所述暂停线程作为备选线程。
优选的,上述线程管理器中,还包括:
线程数据监测器,用于实时检测并输出总的所述备选线程的数量和各个未处理线程的ID、总的所述目标线程的数量和各个目标线程的ID、总的被挂起的目标线程的数量和各个被挂起的目标线程的ID、总的暂停线程的数量和各个暂停线程的ID。
基于上述技术方案,本发明实施例提供的线程管理方法和装置,通过依据第一预设仲裁规则选择一个线程作为备选线程;依据第二预设仲裁规则选择一个备选线程作为目标线程;通过对所述第一预设仲裁规则和第二预设仲裁规则进行合理设置,可有效降低所述被挂起的目标线程的数量,从而提高了线程处理的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中多级有限状态机线程管理机制中顶层FSM的线程处理流程示意图;
图2为本申请实施例公开的一种线程处理方法的流程示意图;
图3为本申请另一实施例公开的一种线程处理方法的流程示意图;
图4为本申请实施例公开的依据选择指令选择预设仲裁规则的流程示意图;
图5为本申请实施例公开的一种线程管理器的结构示意图;
图6为本申请另一实施例公开的一种线程管理器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请公开了一种线程管理方法和系统,以实现优化线程处理性能的目的,提高线程的处理速度。
本申请公开的上述线程管理方法的基本原理为:通过设置预设的仲裁规则,依据所述预设的仲裁规则进行线程的选取和处理,从而降低被挂起的目标线程的数量,从而防止挂起的线程堆积,提高了线程的处理性能,进而调高线程的处理速度。
具体方案如下:
参见图2,本申请实施例公开的线程管理方法,包括:
步骤S101:选择备选线程;
依据第一预设仲裁规则由所有的未处理的线程中,选择一个未处理的线程作为备选线程,将所述备选线程导入备选线程集合;
步骤S102:选择目标线程;
依据第二预设仲裁规则由所述备选线程集合中选择一个备选线程作为目标线程;
需要说明的是,步骤S101和步骤S102在实际执行过程中,没有固定先后顺序,可以先执行步骤S101,后执行步骤S102,或是先执行步骤S102,后执行步骤S101,或是两个步骤同时执行;
步骤S103:执行所述目标线程,当执行到所述目标线程不满足预设条件时,执行步骤S104;
每条线程均由多个命令组成,有的命令在执行时需要将由执行其他线程生成的结果作为执行条件,当全部获取到这些结果以后,该命令才可以执行,当执行所述目标线程时,如果执行到该目标线程存在条件不足的命令时,即可认为该目标线程不满足预设条件;
步骤S104:挂起不满足预设条件的目标线程,继续执行步骤S101和步骤S102;
将挂起后的目标线程导入监控线程集合。
其中,上述步骤S101和步骤S102中的所述第一预设仲裁规则和所述第二预设仲裁规则的具体仲裁方案可以依据用户需求自行设定,只要能够保证该仲裁规则能够有效降低已挂起的目标线程的数量即可,具体所述第一预设仲裁规则和第二预设仲裁规则的表现形式可以为,优先选取执行结果作为挂起的目标线程中的某个执行的条件的线程。
参见本申请上述实施例公开的线程管理方法,通过依据所述第一预设仲裁规则选择一个未处理的线程作为备选线程;依据第二预设仲裁规则选择一个备选线程作为目标线程;通过对所述第一预设仲裁规则和第二预设仲裁规则进行合理设置,可有效降低被挂起的所述目标线程的数量,降低的线程处理过程中的数据拥堵现象,从而提高了线程处理的性能,提高了线程处理速度。
为进一步优化上述实施例,为了保证当被挂起的目标线程满足条件后能够及时被系统感知,并对该满足条件的线程继续处理,参见图3,上述方法中,所述步骤S104之后,还可以包括:
步骤S105:实时监测监控线程集合中是否存在满足预定条件的目标线程,如果是,执行步骤S106;
在该步骤中,获取被挂起的目标线程的所需执行条件,获取以执行的目标线程的执行结果,判断所述被挂起的目标线程所需执行的条件是否全部生成,如果是,则认为该被挂起的目标线程已经满足预定条件;
步骤S106:将满足预定条件的目标线程作为暂停线程导入暂停线程集合;
步骤S107:依据第三预设仲裁规则由所述暂停线程集合中选择一个暂停线程作为备选线程并导入所述备选线程集合。
其中,在本申请上述实施例公开的方法中,在执行所述步骤S101、S102、S103、S104、S106和S107可同时执行,所述图1和个实施例中的描述方式只是为了方便用户理解。
其中,所述第三预设仲裁规则的具体仲裁方案与所述第一预设仲裁规则和第二预设仲裁规则的设定方式类似,只要能够保证所述第三预设仲裁规则能够有效降低已挂起的目标线程的数量即可,其表现形式可以为,优先选取执行结果作为挂起的目标线程中的某个执行的条件的暂停线程作为备选线程。
可以理解的是,本申请上述实施例公开的技术方案中,所述第一预设仲裁规则、第二预设仲裁规则和第三预设仲裁规则的具体执行方案可以依据用户需求自行配置,针对不同的处理需求,可选择不同的预设仲裁规则作为所述第一预设仲裁规则、第二预设仲裁规则和第三预设仲裁规则,对此,为了方便用户更加方便快捷的设定所述第一预设仲裁规则、第二预设仲裁规则和第三预设仲裁规则,可预先设置一仲裁规则数据库,在所述仲裁规则数据库中预存储用户依据不同的仲裁需求编订的多个备选规则,由此,参见图4,执行上述方法之前还可以包括所述依:
步骤S100:判断是否获取到仲裁规则选择指令,如果是,执行步骤S110,步骤S110:由仲裁规则数据库中选择至少一个与所述仲裁规则选择指令相匹配的备选规则;
步骤S111:将所述备选规则作为与其匹配的第一预设仲裁规则、第二预设仲裁规则或第三预设仲裁规则。
在上述方案中,用户输入的一个仲裁规则选择指令可以对应一个备选规则也可以对应对个多个备选规则。
当一个仲裁规则选择指令对应一个备选规则时,由仲裁规则数据库中确定唯一一个备选规则,由该备选规则的标记信息确定其匹配的是第一预设仲裁规则、第二预设仲裁规则还是第三预设仲裁规则,当确定其匹配的预设仲裁规则以后,将该备选规则作为与其匹配的预设仲裁规则,进入上述仲裁方法中,对线程进行仲裁;
当一个仲裁规则选择指令对应多个(两个或三个)备选规则时,由仲裁规则数据库中确定唯与所述仲裁规则选择指令匹配的所有备选规则,由确定的各个备选规则的标记信息确定其匹配的是第一预设仲裁规则、第二预设仲裁规则还是第三预设仲裁规则,当确定分别与各个备选规则匹配的各个预设仲裁规则以后,将确定的各个备选规则作为与其匹配的预设仲裁规则,进入上述仲裁方法中,对线程进行仲裁,其中,每个仲裁规则选择指令所对应的仲裁规则可以由预设的指令-规则映射列表查询。
用户可以依据自身需求在所述仲裁规则数据库中预存多个编订好的备选规则,例如,所述仲裁规则数据库中的备选规则可以包括:与所述第一预设仲裁规则相匹配的第一备选规则,所述第一备选规则的具体执行方案为:
获取各个未处理线程的优先级标识;
依据所述优先级标识判断各个未处理线程的优先级;
选择优先级最高的未处理线程作为备选线程。
在本申请上述实施例公开的技术方案中,可预先对所有未处理的线程进行优先级划分,当采用预设仲裁规则选择线程时,优先选择优先级最高的线程。
在划分各个线程的优先级时,可将执行结果作为最多个数的其他线程的执行条件的线程作为优先级最高的线程,例如,线程a的执行结果可作为其他5个线程的执行条件,线程b的执行结果可作为其他4个线程的执行条件,则将线程a赋予优先级较高的优先级标识,当然,如果多个线程作为数目相同的其他线程的执行条件时,依据这些线程的生成时间先后的顺序进行选取,优先选取这些线程中生成时间最早的线程。
所述仲裁规则数据库的备选规则至少还可以包括:与所述第一预设仲裁规则相匹配的第二备选规则,所述第二备选规则的具体执行方案为:
判断各个未处理线程与所有的所述监控线程集合中的目标线程的相关度;
将与所述监控线程集合中的目标线程的相关度最高的未处理线程作为备选线程。
在判断各个线程的与所述监控集合中的目标线程的相关时,可通过判断各个的执行结果作为监控线程集合中的目标线程的执行条件数量来判断,例如,线程a的执行结果可作为所述监控集合中5个目标线程的执行条件,线程b的执行结果可作为所述监控线程集合中4个目标线程的执行条件,选择线程a作为备选线程,当然,如果多个线程的执行结果作为监控线程集合中的目标线程的执行条件的数目相同时,可依据这些线程的生成时间先后的顺序进行选取,优先选取这些线程中生成时间最早的线程。
当然上述第二备选规则也可以与所述第三预设仲裁规则相匹配,此时,所述仲裁规则数据库的备选规则至少包括第七备选规则,所述第七备选规则的具体执行方案为:
判断各个暂停线程与所有的所述监控线程集合中的目标线程的相关度;
将与所有的监控线程集合中的目标线程的相关度最高的暂停线程作为备选线程。
当然,所述仲裁规则数据库中与所述第一预设仲裁规则相匹配的备选规则除了上述第一备选规则、第二备选规则之外,还可以具有一与所述第一预设仲裁规则匹配第三备选规则,所述第三备选规则的具体执行方案为:
判断各个未处理线程的生成时间;
将生成时间最早的所述未处理线程作为备选线程。
当然,所述第三备选规则可以作为默认规则来使用,其可以同时与所述第一预设仲裁规则、第二预设仲裁规则、第三预设仲裁规则相匹配,当其与所述第二预设仲裁规则相匹配时,其表现形式为:判断备选线程集合中各个备选线程的生成时间;将生成时间最早的所述备选线程作为目标线程。当其与所述第三预设仲裁规则相匹配时,其表现形式为:判断各个暂停处理线程的生成时间;将生成时间最早的所述暂停线程作为备选线程。
和与所述第一预设仲裁规则匹配的多个备选规则类似,所述仲裁规则数据库的备选规则还可以包括多个与所述第二预设仲裁规则相匹配备选规则,例如该与所述第二预设仲裁规则相匹配备选规则可以包括第四备选规则、第五备选规则、第八备选规则和/或第九备选规则。
所述第四备选规则的具体执行方案为:
判断所述备选线程集合中是否存在已经过处理过的备选线程,如果存在,优先选择已经处理过的备选线程作为目标线程。
所述第五备选规则的具体执行方案为:
判断所述监控线程集合中目标线程的数量是否大于预设值,如果是,选择所述备选线程集合中与所有的所述监控线程集合中的目标线程的相关度最高的备选线程作为目标线程;如果否,判断所述备选线程集合中是否存在已经过处理过的备选线程,如果存在,优先选择已经处理过的线程作为目标线程。
与所述第一备选规则类似,所述第八备选规则的具体执行方案可以为:
获取备选线程集合中的各个备选线程的优先级标识;
依据所述优先级标识判断各个备选线程的优先级;
选择优先级最高的备选线程作为备选线程。
与所述第二备选规则类似,所述第九备选规则的具体执行方案可以为:
判断备选线程集合中各个备选线程与所述监控线程集合中的所述目标线程的相关度;
将与监控线程集合中的目标线程的相关度最高的线程作为备选线程。
和与所述第一预设仲裁规则匹配的多个备选规则类似,所述仲裁规则数据库的备选规则还可以包括多个与所述第三预设仲裁规则相匹配备选规则,例如该与所述第三预设仲裁规则相匹配备选规则可以包括第六备选规则、第十备选规则和/或第十一备选规则;
所述第六备选规则的具体执行方案为:
判断暂停线程集合中各个暂停线程的生成时间;
将生成时间最早的所述暂停线程作为备选线程。
与所述第一备选规则类似,所述第十备选规则的具体执行方案可以为:
获取暂停线程集合中的各个暂停线程的优先级标识;
依据所述优先级标识判断各个暂停线程的优先级;
选择优先级最高的暂停线程作为备选线程。
与所述第二备选规则类似,所述第十一备选规则的具体执行方案可以为:
判断暂停线程集合中各个暂停线程与所述监控线程集合中的所述目标线程的相关度;
将与监控线程集合中的目标线程的相关度最高的暂停作为备选线程。
为了方便用户实时了解线程的处理情况,本申请上述实施例公开的方法中还可以包括:
实时检测并输出总的所述备选线程的数量和各个未处理线程的ID、总的所述目标线程的数量和各个目标线程的ID、总的被挂起的目标线程的数量和各个被挂起的目标线程的ID、总的暂停线程的数量和各个暂停线程的ID。
可以理解的是,在本申请上述实施例公开的方法执行之前,用户可以对上述方法处理的总的线程数目进行设定,即通过调整公共参数来调整上述方法处理的总的线程的数目,所述总的线程包括:处理线程集合中的线程、监控线程集合中的线程、暂停线程集合中的线程、以及正在执行的目标线程。
综上,由本申请上述实施例公开的方法可见,所述第一预设仲裁规则、第二预设仲裁规则和第三预设仲裁规则仲裁策略由用户自行配置,根据实际的线程特性,随时变更仲裁策略,以使得线程处理达到最佳性能。
在每个集合中的线程的数目和ID模块都可见。从而根据每个集合中线程的数目和ID很容易得到具体线程的执行情况,并统计出总的线程执行数据,比如平均执行时间,最短/最长执行时间等等。
针对于上述方法,本申请还公开了一种线程管理器,与上述方法相对应,参见图5,该线程管理器包括:新命令仲裁100、最后仲裁器200和执行器300;
所述新命令仲裁器100,用于依据第一预设仲裁规则选择一个线程作为备选线程,将所述备选线程导入备选线程集合;
所述最后仲裁器200,用于当获取到触发信号后依据第二预设仲裁规则由所述备选线程集合中选择一个备选线程作为目标线程;
执行器300,用于执行所述目标线程,当执行到所述目标线程中不满足预定条件,将所述目标线程挂起,将挂起后的目标线程导入监控线程集合,当所述目标线程执行完毕或挂起后向所述最后仲裁器发送触发信号。
每条线程均由多个命令组成,有的命令在执行时需要将由执行其他线程生成的结果作为执行条件,当全部获取到这些结果以后,该命令才可以执行,当执行所述目标线程时,如果执行到该目标线程存在条件不足的命令时,即可认为该目标线程不满足预设条件;
与上述方法相对应,参见图6,上述线程管理器还包括:暂停序列管理器400和暂停命令仲裁器500;
所述暂停序列管理器400,用于实时监测监控线程集合中是否存在满足预定条件的目标线程,如果是,将满足预定条件的目标线程作为暂停线程导入暂停线程集合;
所述暂停序列管理器400具体通过获取被挂起的目标线程的所需执行条件,获取以执行的目标线程的执行结果,判断所述被挂起的目标线程所需执行的条件是否全部生成,如果是,则认为该被挂起的目标线程已经满足预定条件;
所述暂停命令仲裁器500,用于依据第三预设仲裁规则由所述暂停线程集合中选择一个暂停线程作为备选线程并导入所述备选线程集合。
与上述方法相对应,参见图6,上述线程管理器还包括:还包括:
仲裁规则选择器600,用于判断是否获取到仲裁规则选择指令,如果是,由仲裁规则数据库中选择至少一个与所述仲裁规则选择指令相匹配的备选规则,将所述备选规则作为与其匹配的第一预设仲裁规则、第二预设仲裁规则或第三预设仲裁规则;
存储器700,用于存储所述仲裁规则数据库。
其中,与上述方法类似,所述仲裁规则数据库的备选规则可以包括:与所述第一预设仲裁规则相匹配的第一备选规则、第二备选规则和/或第三备选规则;与所述第二预设仲裁规则相匹配的第四备选规则、第五备选规则、第八备选规则和/或第九备选规则;所述第三预设仲裁规则相匹配备选规则可以包括第六备选规则、第七备选规则、第十备选规则、第十一备选规则、第十二备选规则和第十三备选规则;
上述第一备选规则、第二备选规则、第三备选规则、第四备选规则、第五备选规则、第六备选规则、第七备选规则、第八备选规则、第九备选规则、第十备选规则和第十一备选规则的具体执行方案可参见本申请方法介绍部分的相关介绍,在此并不过多说明。
与上述方法相对应,本申请上述实施例公开的线程管理器中,还可以包括:
线程数据监测器,用于实时检测并输出总的所述备选线程的数量和各个未处理线程的ID、总的所述目标线程的数量和各个目标线程的ID、总的被挂起的目标线程的数量和各个被挂起的目标线程的ID、总的暂停线程的数量和各个暂停线程的ID。
在本申请上述实施例公开的装置部分中,用户可以对所述执行器进行修改,以细化线程最小执行单元------命令,将命令细化任务划分粒度。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种线程管理方法,其特征在于,包括:
依据第一预设仲裁规则选择一个线程作为备选线程,将所述备选线程导入备选线程集合;
依据第二预设仲裁规则由所述备选线程集合中选择一个备选线程作为目标线程;
执行所述目标线程;
当执行到所述目标线程中不满足预定条件,将所述目标线程挂起,将挂起后的目标线程导入监控线程集合;
继续依据第一预设仲裁规则选择一个线程作为备选线程,将所述备选线程导入备选线程集合;依据第二预设仲裁规则由所述备选线程集合中选择一个备选线程作为目标线程。
2.根据权利要求1所述的线程管理方法,其特征在于,将所述目标线程挂起后,还包括:
实时监测监控线程集合中是否存在满足预定条件的目标线程,如果是,将满足预定条件的目标线程作为暂停线程导入暂停线程集合;
依据第三预设仲裁规则由所述暂停线程集合中选择一个暂停线程作为备选线程并导入所述备选线程集合。
3.根据权利要求2所述的线程管理方法,其特征在于,所述依据第一预设仲裁规则选择一个线程作为备选线程之前,还包括:
判断是否获取到仲裁规则选择指令,如果是,由仲裁规则数据库中选择至少一个与所述仲裁规则选择指令相匹配的备选规则,将所述备选规则作为与其匹配的第一预设仲裁规则、第二预设仲裁规则或第三预设仲裁规则。
4.根据权利要求3所述的线程管理方法,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第一备选规则,所述第一备选规则为:
获取各个线程的优先级标识;
依据所述优先级标识判断各个线程的优先级;
选择优先级最高的线程作为备选线程。
5.根据权利要求3所述的线程管理方法,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第二备选规则,所述第二备选规则为:
判断各个线程与所述监控线程集合中的所述目标线程的相关度;
将与所述监控线程集合中的目标线程的相关度最高的线程作为备选线程。
6.根据权利要求3所述的线程管理方法,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第三备选规则,所述第三备选规则为:
判断各个线程的生成时间;
将生成时间最早的线程作为备选线程。
7.根据权利要求3所述的线程管理方法,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第二预设仲裁规则相匹配的第四备选规则,所述第四备选规则为:
判断所述备选线程集合中是否存在已经过处理过的备选线程,如果存在,优先选择已经处理过的备选线程作为目标线程。
8.根据权利要求3所述的线程管理方法,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第二预设仲裁规则相匹配的第五备选规则,所述第五备选规则为:
判断所述监控线程集合中目标线程的数量是否大于预设值,如果是,选择所述备选线程集合中与所有的所述监控线程集合中的目标线程的相关度最高的备选线程作为目标线程;如果否,判断所述备选线程集合中是否存在已经过处理过的备选线程,如果存在,优先选择已经处理过的线程作为目标线程。
9.根据权利要求3所述的线程管理方法,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第三预设仲裁规则相匹配的第六备选规则,所述第六备选规则为:
判断暂停线程集合中各个暂停线程的生成时间;
将生成时间最早的所述暂停线程作为备选线程。
10.根据权利要求1-9任意一项所述的线程管理方法,其特征在于,还包括:
实时检测并输出总的所述备选线程的数量和各个未处理线程的ID、总的所述目标线程的数量和各个目标线程的ID、总的被挂起的目标线程的数量和各个被挂起的目标线程的ID、总的暂停线程的数量和各个暂停线程的ID。
11.一种线程管理器,其特征在于,包括:新命令仲裁器、最后仲裁器和执行器;
所述新命令仲裁器,用于依据第一预设仲裁规则选择一个线程作为备选线程,将所述备选线程导入备选线程集合;
所述最后仲裁器,用于当获取到触发信号后依据第二预设仲裁规则由所述备选线程集合中选择一个备选线程作为目标线程;
执行器,用于执行所述目标线程,当执行到所述目标线程中不满足预定条件,将所述目标线程挂起,将挂起后的目标线程导入监控线程集合,当所述目标线程执行完毕或挂起后向所述最后仲裁器发送触发信号。
12.根据权利要求11所述的线程管理器,其特征在于,还包括:暂停序列管理器和暂停命令仲裁器;
所述暂停序列管理器,用于实时监测监控线程集合中是否存在满足预定条件的目标线程,如果是,将满足预定条件的目标线程作为暂停线程导入暂停线程集合;
所述暂停命令仲裁器,用于依据第三预设仲裁规则由所述暂停线程集合中选择一个暂停线程作为备选线程并导入所述备选线程集合。
13.根据权利要求12所述的线程管理器,其特征在于,还包括:
仲裁规则选择器,用于判断是否获取到仲裁规则选择指令,如果是,由仲裁规则数据库中选择至少一个与所述仲裁规则选择指令相匹配的备选规则,将所述备选规则作为与其匹配的第一预设仲裁规则、第二预设仲裁规则或第三预设仲裁规则;
存储器,用于存储所述仲裁规则数据库。
14.根据权利要求13所述的线程管理器,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第一备选规则,所述第一备选规则为:
获取各个线程的优先级标识;
依据所述优先级标识判断各个线程的优先级;
选择优先级最高的线程作为备选线程。
15.根据权利要求13所述的线程管理器,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第二备选规则,所述第二备选规则为:
判断各个线程与所有的所述监控线程集合中的目标线程的相关度;
将与所述监控线程集合中的目标线程的相关度最高的线程作为备选线程。
16.根据权利要求13所述的线程管理器,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第一预设仲裁规则相匹配的第三备选规则,所述第三备选规则为:
判断各个线程的生成时间;
将生成时间最早的所述线程作为备选线程。
17.根据权利要求13所述的线程管理器,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第二预设仲裁规则相匹配的第四备选规则,所述第四备选规则为:
判断所述备选线程集合中是否存在已经过处理过的备选线程,如果存在,优先选择已经处理过的备选线程作为目标线程。
18.根据权利要求13所述的线程管理器,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第二预设仲裁规则相匹配的第五备选规则,所述第五备选规则为:
判断所述监控线程集合中目标线程的数量是否大于预设值,如果是,选择所述备选线程集合中与所有的所述监控线程集合中的目标线程的相关度最高的备选线程作为目标线程;如果否,判断所述备选线程集合中是否存在已经过处理过的备选线程,如果存在,优先选择已经处理过的线程作为目标线程。
19.根据权利要求13所述的线程管理器,其特征在于,所述仲裁规则数据库的备选规则至少包括与所述第三预设仲裁规则相匹配的第六备选规则,所述第六备选规则为:
判断暂停线程集合中各个暂停线程的生成时间;
将生成时间最早的所述暂停线程作为备选线程。
20.根据权利要求11-19任意一项所述的线程管理器,其特征在于,还包括:
线程数据监测器,用于实时检测并输出总的所述备选线程的数量和各个未处理线程的ID、总的所述目标线程的数量和各个目标线程的ID、总的被挂起的目标线程的数量和各个被挂起的目标线程的ID、总的暂停线程的数量和各个暂停线程的ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610193108.6A CN105824703B (zh) | 2016-03-30 | 2016-03-30 | 一种线程管理方法和线程管理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610193108.6A CN105824703B (zh) | 2016-03-30 | 2016-03-30 | 一种线程管理方法和线程管理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105824703A CN105824703A (zh) | 2016-08-03 |
CN105824703B true CN105824703B (zh) | 2019-03-29 |
Family
ID=56524511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610193108.6A Active CN105824703B (zh) | 2016-03-30 | 2016-03-30 | 一种线程管理方法和线程管理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105824703B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967487A (zh) * | 2005-11-18 | 2007-05-23 | Sap股份公司 | 使用协程和线程的协同调度 |
CN101324851A (zh) * | 2007-06-12 | 2008-12-17 | 华为技术有限公司 | 线程调度方法及其装置 |
CN104375804A (zh) * | 2013-08-13 | 2015-02-25 | 三星电子株式会社 | 多线程执行处理器及其操作方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8264971B2 (en) * | 2004-10-28 | 2012-09-11 | Telecom Italia S.P.A. | Method for managing resources in a platform for telecommunication service and/or network management, corresponding platform and computer program product therefor |
EP1808767B1 (en) * | 2006-01-13 | 2010-09-22 | Alcatel Lucent | Method for selecting a processing device managing resources |
-
2016
- 2016-03-30 CN CN201610193108.6A patent/CN105824703B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967487A (zh) * | 2005-11-18 | 2007-05-23 | Sap股份公司 | 使用协程和线程的协同调度 |
CN101324851A (zh) * | 2007-06-12 | 2008-12-17 | 华为技术有限公司 | 线程调度方法及其装置 |
CN104375804A (zh) * | 2013-08-13 | 2015-02-25 | 三星电子株式会社 | 多线程执行处理器及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105824703A (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hoogeveen et al. | Optimal on-line algorithms for single-machine scheduling | |
Shaw | A distributed scheduling method for computer integrated manufacturing: the use of local area networks in cellular systems | |
CN106293950B (zh) | 一种面向集群系统的资源优化管理方法 | |
CN106408112A (zh) | 生产订单的排产管理方法与排产优化器系统 | |
US6952828B2 (en) | System, method and computer program product for dynamic resource management | |
CN105320571B (zh) | 一种进程调度方法 | |
CA2446796A1 (en) | Planning and scheduling reconfigurable systems with alternative capabilities | |
CN110489217A (zh) | 一种任务调度方法及系统 | |
CN104239154B (zh) | 一种Hadoop集群中的作业调度方法和作业调度器 | |
CN107976918A (zh) | 一种任务切换方法和相关装置 | |
CN106293918A (zh) | 一种调度进程的方法、系统及计算机 | |
CN106569891A (zh) | 一种存储系统中任务调度执行的方法和装置 | |
CN110503480A (zh) | 一种数据处理方法、系统及电子设备 | |
CN110456746A (zh) | 一种多品种混线自动化生产的实时调度方法 | |
CN105589748A (zh) | 一种业务请求处理方法及装置 | |
CN110362475A (zh) | 一种信息获取方法、装置、终端设备及存储介质 | |
CN104156269B (zh) | 一种基于时间自动机的软硬件最优划分的可视化方法 | |
CN102880471B (zh) | 基于命令行的命令执行方法及命令行操作系统 | |
Shaw et al. | Automatic planning and flexible scheduling: a knowledge-based approach | |
CN108536530A (zh) | 一种多线程任务调度方法及装置 | |
CN103440113B (zh) | 一种磁盘io资源分配方法和装置 | |
CN105824703B (zh) | 一种线程管理方法和线程管理器 | |
CN114675956A (zh) | 一种基于Kubernetes集群之间Pod配置及调度的方法 | |
CN107703897B (zh) | 一种面向固定式装配过程的协同导航优化方法 | |
CN106487889B (zh) | 一种面向云数据中心的任务与数据联合部署方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |