一种线程状态控制方法及装置与流程

xiaoxiao9月前  54


本技术涉及线程控制,特别是涉及一种线程状态控制方法及装置。


背景技术:

1、在当代互联网技术的高速发展的过程中,大量数据多线程并发场景不断增多,对于大量数据的处理复杂度日益增大,从而涌现出大量的处理线程,而目前存在的线程多数为一维线程,但随着用户体验感的提升,难免会遇到使用多维线程的处理方式。

2、而目前市场所存在的部署环境多种多样,如单机、分布式、集群等部署方式,不同的部署方式也增大了线程启停的处理难度,同时线程运行容易出现消耗大量系统内存、占用大量cpu(central processing processor,中央处理器)、出现死循环等问题,对于线程的使用也更加谨慎,而如何实现线程启停是目前亟待解决的问题。


技术实现思路

1、本技术实施例所要解决的技术问题是提供一种线程状态控制方法及装置,以对多种部署模式下产生的线程进行启停的控制,避免出现消耗大量系统内存、占用大量cpu、出现死循环等问题。

2、第一方面,本技术实施例提供了一种线程状态控制方法,所述方法包括:

3、调用父级线程,获取预先加载至任务缓存内的待处理任务;

4、在确定达到所述待处理任务对应的任务启动条件的情况下,为所述待处理任务分配并启动第一子级线程,并将所述第一子级线程的第一线程标识存储于共享内存中的线程任务标识集合中,以由所述第一子级线程在识别出自身的第一线程标识处于所述线程任务标识集合中时,执行所述待处理任务;

5、在确定达到所述待处理任务对应的任务暂停条件的情况下,删除所述线程任务标识集合中的第一线程标识,以使所述第一子级线程在识别出自身的第一线程标识未处于所述线程任务标识集合中时,记录所述待处理任务的处理结果数据,并结束执行所述待处理任务。

6、可选地,所述确定达到所述待处理任务对应的任务启动条件,包括:

7、获取所述待处理任务对应的任务暂停时段;

8、在当前时间未处于所述任务暂停时段内的情况下,确定达到所述待处理任务的任务启动条件。

9、可选地,所述确定达到所述待处理任务对应的任务启动条件,包括:

10、获取所述待处理任务对应的任务处理系统的线程数阈值,及所述任务处理系统当前运行线程的线程数,所述线程数阈值为基于所述任务处理系统的cpu使用率和内存使用率确定的;

11、在所述线程数小于所述线程数阈值的情况下,确定达到所述待处理任务的任务启动条件。

12、可选地,所述确定达到所述待处理任务对应的任务暂停条件,包括:

13、在当前时间处于所述待处理任务的任务暂停时段内的情况下,确定达到所述待处理任务对应的任务暂停条件;和/或

14、在所述待处理任务的执行时长达到时长阈值的情况下,确定达到所述待处理任务对应的任务暂停条件;和/或

15、在所述待处理任务对应的任务处理系统当前运行线程的线程数大于线程数阈值,且所述第一线程标识存储于所述线程任务标识集合的时间晚于所述线程任务标识集合内的其它线程标识的存储时间的情况下,确定达到所述待处理任务对应的任务暂停条件;和/或

16、在所述待处理任务的运行对所述任务处理系统的影响系数大于设定系数阈值的情况下,确定达到所述待处理任务对应的任务暂停条件。

17、可选地,在所述删除所述线程任务标识集合中的第一线程标识之后,还包括:

18、在确定达到所述待处理任务的再次任务启动条件的情况下,为所述待处理任务分配并启动第二子级线程;

19、将所述第二子级线程的第二线程标识存储于共享内存中的线程任务标识集合中,以由所述第二子级线程在识别出自身的第二线程标识处于所述线程任务标识集合中时,根据预先记录的所述待处理任务的处理结果数据,执行所述待处理任务。

20、可选地,在所述将所述第二子级线程的第二线程标识存储于共享内存中的线程任务标识集合中之后,还包括:

21、确定所述待处理任务是否执行完成;

22、响应于所述待处理任务执行完成,删除所述线程任务标识集合中的第二线程标识,以使所述第二子级线程在识别出自身的第二线程标识未处于所述线程任务标识集合中时,记录所述待处理任务的任务执行结果,并结束所述第二子级线程。

23、第二方面,本技术实施例提供了一种线程状态控制装置,所述装置包括:

24、待处理任务获取模块,用于调用父级线程,获取预先加载至任务缓存内的待处理任务;

25、第一线程启动模块,用于在确定达到所述待处理任务对应的任务启动条件的情况下,为所述待处理任务分配并启动第一子级线程,并将所述第一子级线程的第一线程标识存储于共享内存中的线程任务标识集合中,以由所述第一子级线程在识别出自身的第一线程标识处于所述线程任务标识集合中时,执行所述待处理任务;

26、第一线程暂停模块,用于在确定达到所述待处理任务对应的任务暂停条件的情况下,删除所述线程任务标识集合中的第一线程标识,以使所述第一子级线程在识别出自身的第一线程标识未处于所述线程任务标识集合中时,记录所述待处理任务的处理结果数据,并结束执行所述待处理任务。

27、可选地,所述第一线程启动模块包括:

28、暂停时段获取单元,用于获取所述待处理任务对应的任务暂停时段;

29、第一启动条件确定单元,用于在当前时间未处于所述任务暂停时段内的情况下,确定达到所述待处理任务的任务启动条件。

30、可选地,所述第一线程启动模块包括:

31、线程数获取单元,用于获取所述待处理任务对应的任务处理系统的线程数阈值,及所述任务处理系统当前运行线程的线程数,所述线程数阈值为基于所述任务处理系统的cpu使用率和内存使用率确定的;

32、第二启动条件确定单元,用于在所述线程数小于所述线程数阈值的情况下,确定达到所述待处理任务的任务启动条件。

33、可选地,所述第一线程暂停模块包括:

34、第一暂停条件确定单元,用于在当前时间处于所述待处理任务的任务暂停时段内的情况下,确定达到所述待处理任务对应的任务暂停条件;

35、第二暂停条件确定单元,用于在所述待处理任务的执行时长达到时长阈值的情况下,确定达到所述待处理任务对应的任务暂停条件;

36、第三暂停条件确定单元,用于在所述待处理任务对应的任务处理系统当前运行线程的线程数大于线程数阈值,且所述第一线程标识存储于所述线程任务标识集合的时间晚于所述线程任务标识集合内的其它线程标识的存储时间的情况下,确定达到所述待处理任务对应的任务暂停条件;

37、第四暂停条件确定单元,用于在所述待处理任务的运行对所述任务处理系统的影响系数大于设定系数阈值的情况下,确定达到所述待处理任务对应的任务暂停条件。

38、可选地,所述装置还包括:

39、第二线程分配模块,用于在确定达到所述待处理任务的再次任务启动条件的情况下,为所述待处理任务分配并启动第二子级线程;

40、第二线程启动模块,用于将所述第二子级线程的第二线程标识存储于共享内存中的线程任务标识集合中,以由所述第二子级线程在识别出自身的第二线程标识处于所述线程任务标识集合中时,根据预先记录的所述待处理任务的处理结果数据,执行所述待处理任务。

41、可选地,所述装置还包括:

42、任务完成确定模块,用于确定所述待处理任务是否执行完成;

43、线程标识删除模块,用于响应于所述待处理任务执行完成,删除所述线程任务标识集合中的第二线程标识,以使所述第二子级线程在识别出自身的第二线程标识未处于所述线程任务标识集合中时,记录所述待处理任务的任务执行结果,并结束所述第二子级线程。

44、第三方面,本技术实施例提供了一种电子设备,包括:

45、处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的线程状态控制方法。

46、第四方面,本技术实施例提供了一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一项所述的线程状态控制方法。

47、与现有技术相比,本技术实施例包括以下优点:

48、本技术实施例中,通过调用父级线程,获取预先加载至任务缓存内的待处理任务。在确定达到待处理任务对应的任务启动条件的情况下,为待处理任务分配并启动第一子级线程,并将第一子级线程的第一线程标识存储于共享内存中的线程任务标识集合中,以由第一子级线程在识别出自身的第一线程标识处于线程任务标识集合中时,执行待处理任务。在确定达到待处理任务对应的任务暂停条件的情况下,删除线程任务标识集合中的第一线程标识,以使第一子级线程在识别出自身的第一线程标识未处于线程任务标识集合中时,记录待处理任务的处理结果数据,并结束执行待处理任务。本技术实施例通过父级线程和子级线程的共享内存中创建线程任务标识集合,从而可以实现对多种部署模式下产生的线程进行启停的控制,可以避免出现消耗大量系统内存、占用大量cpu、出现死循环等问题。

49、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。


技术特征:

1.一种线程状态控制方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述确定达到所述待处理任务对应的任务启动条件,包括:

3.根据权利要求1所述的方法,其特征在于,所述确定达到所述待处理任务对应的任务启动条件,包括:

4.根据权利要求1所述的方法,其特征在于,所述确定达到所述待处理任务对应的任务暂停条件,包括:

5.根据权利要求1所述的方法,其特征在于,在所述删除所述线程任务标识集合中的第一线程标识之后,还包括:

6.根据权利要求5所述的方法,其特征在于,在所述将所述第二子级线程的第二线程标识存储于共享内存中的线程任务标识集合中之后,还包括:

7.一种线程状态控制装置,其特征在于,所述装置包括:

8.根据权利要求7所述的装置,其特征在于,所述第一线程启动模块包括:

9.根据权利要求7所述的装置,其特征在于,所述第一线程启动模块包括:

10.根据权利要求7所述的装置,其特征在于,所述第一线程暂停模块包括:

11.根据权利要求7所述的装置,其特征在于,所述装置还包括:

12.根据权利要求11所述的装置,其特征在于,所述装置还包括:


技术总结
本申请提供了一种线程状态控制方法及装置。包括:调用父级线程,获取预先加载至任务缓存内的待处理任务;在确定达到待处理任务对应的任务启动条件的情况下,为待处理任务分配并启动第一子级线程,并将第一子级线程的第一线程标识存储于共享内存中的线程任务标识集合中,以由第一子级线程在识别出自身的第一线程标识处于线程任务标识集合中时,执行待处理任务;在确定达到待处理任务对应的任务暂停条件的情况下,删除线程任务标识集合中的第一线程标识,以使第一子级线程在识别出自身的第一线程标识未处于线程任务标识集合中时,记录待处理任务的处理结果数据,并结束执行待处理任务。本申请可以实现对多种部署模式下产生的线程进行启停的控制。

技术研发人员:李忠鹏,王浩铭,王志海,喻波,韩振国
受保护的技术使用者:北京明朝万达科技股份有限公司
技术研发日:
技术公布日:2024/9/23

最新回复(0)