【技术实现步骤摘要】
线程管理方法、装置、计算机设备和存储介质
[0001]本申请涉及信息
,特别是涉及一种线程管理方法、装置、计算机设备、存储介质和计算机程序产品。
技术介绍
[0002]进程为程序运行的载体。其中,每个进程中包含有多个线程,线程作为进程中最小的资源占用单元,可以从进程中获取自身所需的资源来保证自己的任务正常执行。
[0003]目前,每一线程在执行任务时,需要由相应任务数据的接收端来判断任务的执行是否成功,例如,当接收端一直未接收到执行该任务所得到的任务数据,则接收端基于该接收超时情况,反馈线程执行该任务异常,或者,接收端检验接收到的任务数据存在异常,则接收端基于该任务数据存在异常的情况,反馈线程执行该任务异常。
[0004]然而,目前,线程在执行任务时,完全依赖于数据接收端的反馈,来确定执行该任务是否异常,异常情况发现不及时且无法对具体异常处理阶段进行定位。
技术实现思路
[0005]基于此,有必要针对上述技术问题,提供一种线程管理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
[0006]第一方面,本申请提供了一种线程管理方法。所述方法包括:
[0007]根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;
[0008]在线程执行所述目标任务的过程中,基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果;所述任务层级对应的执行结果用于反映所述任务层级的异常处理情况; >[0009]根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果。
[0010]采用本方法,通过对任务层级的划分,以及在任务执行过程中对各任务层级进行同步监测,可以及时发现目标任务执行过程中的异常情况,而且由于在监测过程中是逐层级遍历监测,因此,还可以实现对异常处理阶段进行定位。
[0011]在其中一个实施例中,所述基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果,包括:
[0012]在当前的监控周期内,获取当前时刻以及当前任务层级;
[0013]在所述当前任务层级的层级数小于所述预设的任务层级数的情况下,获取所述当前任务层级对应的时间属性信息;
[0014]在所述时间属性信息与所述当前任务层级对应的超时监测时间属性信息相同的情况下,根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果。
[0015]本实施例中,通过对线程执行任务的主动监测,无需等待接收端反馈任务的异常执行情况,及时发现异常执行过程进而,提高了线程执行任务的效率。
[0016]在其中一个实施例中,所述超时时刻包括第一超时时刻和第二超时时刻,所述根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果之后,所述方法还包括:
[0017]在所述执行结果为执行超时的情况下,获取所述第一超时时刻、第一超时时长和第二超时时长;所述第一超时时长小于所述第二超时时长;所述第一超时时长表征线程起始执行时刻至第一超时时刻间的时长;所述第二超时时长表征所述线程起始执行时刻至所述第二超时时刻的时长;
[0018]基于所述第一超时时长、所述第一超时时刻和所述第二超时时长,构建超时等级关系式;
[0019]根据所述超时等级关系式与所述当前时刻,确定所述当前任务层级所处的超时等级。
[0020]本实施例中,通过构建超时状态关系式,根据当前时刻与超时状态关系式间的大小关系,确定线程超时情况对应的超时等级,以针对不同超时等级对应执行超时管理策略,从而,达到对线程的保护。
[0021]在其中一个实施例中,所述根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果之后,所述方法还包括:
[0022]在所述执行结果为执行超时的情况下,基于所述第一超时时长以及所述第一超时时刻,确定所述线程起始执行时刻;
[0023]基于所述线程起始执行时刻以及所述当前时刻,确定线程耗时时长。
[0024]本实施例中,通过第一超时时刻可以确定线程起始执行时刻,从而得到线程耗时时长,丰富了目标任务执行过程中线程的属性信息,并且,进一步实现了对线程执行目标任务的过程的监测。
[0025]在其中一个实施例中,所述根据预设的任务层级数,确定当前待执行的目标任务的各任务层级之前,所述方法还包括:
[0026]接收多个待执行的任务,并将所述多个待执行的任务存储至任务收集队列;
[0027]在所述任务收集队列中读取预设任务处理量的数目的任务,并将所述预设任务处理量的数目的任务划归为同一任务执行轮次中的任务,依次对所述同一任务执行轮次中的任务进行处理。
[0028]本实施例中,通过维护任务收集队列,基于该线程任务处理机制,该任务收集队列可以对多个待处理的任务进行缓存,无需每次执行完一个任务,都需要重新启动线程去执行新的任务,提高了线程处理效率。
[0029]在其中一个实施例中,所述根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果,包括:
[0030]在各所述任务层级对应的执行结果中,存在执行异常的执行结果时,确定所述目标任务的执行结果为执行异常。
[0031]本实施例中,基于各任务层级对应的执行结果,确定目标任务的执行结果,从而,实现对目标任务执行过程中异常处理阶段的定位。
[0032]在其中一个实施例中,所述目标任务为多个线程共同处理的任务,所述根据预设的任务层级数,确定当前待执行的目标任务的各任务层级之前,所述方法还包括:
[0033]获取目标任务对应的包含所述多个线程的线程链路信息,并将所述线程链路信息存储至本地。
[0034]本实施例中,通过预先存储线程链路信息对任务的执行流程进行追踪,保证了本线程所做任务在一个完整的线程链路上,提高了后续任务跟踪查询的效率。
[0035]在其中一个实施例中,所述根据预设的任务层级数,确定当前待执行的目标任务的各任务层级之前,所述方法还包括:
[0036]获取线程所处线程池的线程池信息以及所述线程的协程信息;所述协程信息用于辅助所述线程内的多个任务协程处理;
[0037]将所述线程池信息以及所述协程信息存储至本地。
[0038]本实施例中,预先存储协程信息,实现了本线程中协程寄存器之间的自由切换、记录上轮寄存器信息、当前寄存器上下文信息、目标寄存器上下文信息、主栈的寄存器上下文信息,且通过寄存器信息保存的栈深度来控制协程栈深,防止栈深过大。
[0039]第二方面,本申请还提供了一种线程管理装置。所述装置包括:
[0040]第一确定模块,用于根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;
[0041]第二确定模块,用于在线程执行所述目本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种线程管理方法,其特征在于,所述方法包括:根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;在线程执行所述目标任务的过程中,基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果;所述任务层级对应的执行结果用于反映所述任务层级的异常处理情况;根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果。2.根据权利要求1所述的方法,其特征在于,所述基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果,包括:在当前的监控周期内,获取当前时刻以及当前任务层级;在所述当前任务层级的层级数小于所述预设的任务层级数的情况下,获取所述当前任务层级对应的时间属性信息;在所述时间属性信息与所述当前任务层级对应的超时监测时间属性信息相同的情况下,根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果。3.根据权利要求2所述的方法,其特征在于,所述超时时刻包括第一超时时刻和第二超时时刻,所述根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果之后,所述方法还包括:在所述执行结果为执行超时的情况下,获取所述第一超时时刻、第一超时时长和第二超时时长;所述第一超时时长小于所述第二超时时长;基于所述第一超时时长、所述第一超时时刻和所述第二超时时长,构建超时等级关系式;根据所述超时等级关系式与所述当前时刻,确定所述当前任务层级所处的超时等级。4.根据权利要求3所述的方法,其特征在于,所述根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果之后,所述方法还包括:在所述执行结果为执行超时的情况下,基于所述第一超时时长以及所述第一超时时刻,确定所述线程起始执行时刻;基于所述线程起始执行时刻以及所述当前时刻,确定线程耗时时长。5.根据权利要求1所述的方法,其特征在于,所述根据预设的任务层级数,确定当前待执行的目标任务的各任务层级之前,所述方法还包括:接收多个待执行的任...
【专利技术属性】
技术研发人员:刘双耀,季旻,白煌煌,惠润海,刘建锋,
申请(专利权)人:天津中科曙光存储科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。