CN113760369A - 并发线程处理方法、装置、电子设备以及存储介质 - Google Patents
并发线程处理方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN113760369A CN113760369A CN202011047673.4A CN202011047673A CN113760369A CN 113760369 A CN113760369 A CN 113760369A CN 202011047673 A CN202011047673 A CN 202011047673A CN 113760369 A CN113760369 A CN 113760369A
- Authority
- CN
- China
- Prior art keywords
- thread
- time
- lock
- concurrent
- processing
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000003860 storage Methods 0.000 title claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 178
- 238000000034 method Methods 0.000 claims abstract description 49
- 230000002159 abnormal effect Effects 0.000 claims abstract description 48
- 238000007689 inspection Methods 0.000 claims description 23
- 238000003825 pressing Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 7
- 238000013461 design Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000012163 sequencing technique Methods 0.000 description 6
- 238000013468 resource allocation Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/5018—Thread allocation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种并发线程处理方法、装置、电子设备以及存储介质,通过先将接收到的待处理并发线程压入限时锁的等待队列中,然后利用预设限时锁分配模型确定等待队列中各个待处理并发线程的持锁状态,接着在限时锁的限时时间内对持锁线程进行处理。通过限时锁约束每个线程占用处理器的时间,实现了缩短并发线程异常时处理器的等待时间,解决了现有技术缺乏对异常线程的管理工具和方法,导致线程处理缓慢进而影响真个系统的并发处理性能的技术问题,达到了提高系统的并发处理性能的技术效果。
Description
技术领域
本申请涉及计算机数据处理领域,尤其涉及一种并发线程处理方法、装置、电子设备以及存储介质。
背景技术
JAVA语音软件工具开发包JDK普遍用于移动设备、嵌入式设备上的JAVA应用程序的构建中,JDK作为整个JAVA开发的核心,包含了JAVA运行环境和JAVA工具。
目前,在JDK的JAVA环境中对于大量并发线程需要短时间内处理的情况,并没有专门的计算资源分配工具。这就造成了某个线程出现异常状况时,处理器出现大量的闲置等待时间,造成并发线程处理缓慢,计算资源利用率低的问题。
即现有技术中缺乏对异常线程的管理工具和方法,导致线程处理缓慢进而影响真个系统的并发处理性能的问题。
发明内容
本申请提供一种并发线程处理方法、装置、电子设备以及存储介质,以解决现有技术中缺乏对异常线程的管理工具和方法,导致线程处理缓慢进而影响真个系统的并发处理性能的技术问题,以提高系统的并发处理性能。
第一个方面,本申请提供一种并发线程处理方法,包括:
将接收到的待处理并发线程压入限时锁的等待队列中,所述限时锁用于对所述待处理并发线程的触发逻辑进行管理;
利用预设限时锁分配模型确定所述等待队列中各个待处理并发线程的持锁状态,其中,所述持锁状态用于表征线程处理时间优先级;
在所述限时锁的限时时间内对持锁线程进行处理,所述持锁线程为所述持锁状态为目标状态的线程。
可选的,所述线程处理时间优先级与所述限时时间满足预设对应关系。
在一种可能的设计中,所述将接收到的待处理并发线程压入限时锁的等待队列中,包括:
将所述待处理并发线程按预设排序算法进行排序,确定并发线程序列;
所述等待队列为所述并发线程序列。
可选的,所述利用预设限时锁分配模型确定所述等待队列中各个待处理并发线程的持锁状态,包括:
按等待队列中各个所述待处理并发线程的排列顺序,每次修改排名前N位的所述待处理并发线程的所述持锁状态为所述目标状态;
所述N小于或等于所述等待队列中的所述待处理并发线程的数量。
可选的,所述N等于1。
在一种可能的设计中,所述目标状态包括加锁状态,所述加锁状态用于表示需要立即处理的线程。
在一种可能的设计中,所述在所述限时锁的限时时间内对持锁线程进行处理,包括:
利用所述限时锁的巡检线程监视所述持锁线程的处理时间;
若所述处理时间小于所述限时时间,则利用所述预设限时锁分配模型重新指定所述持锁线程。
在一种可能的设计中,该方法还包括:
若所述处理时间达到所述限时时间,则将所述持锁线程对应的并发线程压入所述限时锁的异常队列中;
若所述巡检线程监测到所述异常队列中的异常并发线程满足预设条件,在下一次重新指定所述持锁线程时,指定所述异常并发线程为所述持锁线程。
可选的,该方法还包括:
当所述巡检线程监测到所述异常并发线程作为所述持锁线程时的所述处理时间到达所述限时时间时,将所述异常并发线程重新压入所述等待队列中,重新等待所述预设限时锁分配模型指定为所述持锁线程。
在一种可能的设计中,所述重新指定所述持锁线程,包括:
将所述等待队列或所述异常队列中预设位置的所述并发线程的持锁状态设置为目标状态。
可选的,在所述利用所述限时锁的巡检线程监视所述持锁线程的处理时间之前,还包括:
检测是否存在所述巡检线程,若否,则创建所述巡检线程。
在一种可能的设计中,所述利用所述限时锁的巡检线程监视所述持锁线程的处理时间,包括:
在开始处理所述持锁线程的同时,根据当前时刻以及所述限时时间,确定限时结束时刻;
将所述限时结束时刻设置到所述巡检线程中;
所述巡检线程监测当前时刻是否达到所述限时结束时刻。
第二个方面,本申请提供一种并发线程处理装置,包括:
接收模块,用于接收待处理并发线程;
限时锁模块,用于对所述待处理并发线程的触发逻辑进行管理;
处理模块,用于将所述待处理并发线程压入所述限时锁模块的等待队列子模块中;
所述处理模块,还用于利用预设限时锁分配模型确定所述等待队列子模块中各个待处理并发线程的持锁状态,其中,所述持锁状态用于表征线程处理时间优先级;
所述处理模块,还用于在所述限时锁模块设定的限时时间内对持锁线程进行处理,所述持锁线程为所述持锁状态为目标状态的线程。
在一种可能的设计中,所述线程处理时间优先级与所述限时时间满足预设对应关系。
可选的,所述处理模块,用于将所述待处理并发线程压入所述限时锁模块的等待队列子模块中,包括:
所述处理模块,用于将所述待处理并发线程按预设排序算法进行排序,确定并发线程序列;所述等待队列为所述并发线程序列。
可选的,所述处理模块,还用于利用预设限时锁分配模型确定所述等待队列子模块中各个待处理并发线程的持锁状态,包括:
所述处理模块,还用于按等待队列中各个所述待处理并发线程的排列顺序,每次修改排名前N位的所述待处理并发线程的所述持锁状态为所述目标状态;所述N小于或等于所述等待队列中的所述待处理并发线程的数量。
可选的,所述N等于1。
进一步可选的,所述目标状态包括加锁状态,所述加锁状态用于表示需要立即处理的线程。
在一种可能的设计中,所述处理模块,还用于在所述限时锁模块设定的限时时间内对持锁线程进行处理,包括:
所述处理模块,还用于利用所述限时锁模块的巡检线程子模块监视所述持锁线程的处理时间;
所述处理模块,还用于若所述处理时间小于所述限时时间,则利用所述预设限时锁分配模型重新指定所述持锁线程。
在一种可能的设计中,所述处理模块,还用于若所述处理时间达到所述限时时间,则将所述持锁线程对应的并发线程压入所述限时锁模块的异常队列子模块中;
所述处理模块,还用于若所述巡检线程子模块监测到所述异常队列子模块中的异常并发线程满足预设条件,在下一次重新指定所述持锁线程时,指定所述异常并发线程为所述持锁线程。
在一种可能的设计中,所述处理模块,还用于当所述巡检线程子模块监测到所述异常并发线程作为所述持锁线程时的所述处理时间到达所述限时时间时,将所述异常并发线程重新压入所述等待队列子模块中,重新等待所述预设限时锁分配模型指定为所述持锁线程。
在一种可能的设计中,所述处理模块,还用于重新指定所述持锁线程,包括:
所述处理模块,还用于将所述等待队列子模块或所述异常队列子模块中预设位置的所述并发线程的持锁状态设置为目标状态。
可选的,在所述处理模块,还用于利用所述限时锁的巡检线程子模块监视所述持锁线程的处理时间之前,还包括:
检测是否存在所述巡检线程,若否,则创建所述巡检线程。
在一种可能的设计中,所述处理模块,还用于利用所述限时锁的巡检线程监视所述持锁线程的处理时间,包括:
所述处理模块,还用于在开始处理所述持锁线程的同时,根据当前时刻以及所述限时时间,确定限时结束时刻;
所述处理模块,还用于将所述限时结束时刻设置到所述巡检线程子模块中;
所述巡检线程子模块,用于监测当前时刻是否达到所述限时结束时刻。
第三个方面,本申请提供一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,执行第一方面所提供的任意一种可能的并发线程处理方法。
第四个方面,本申请提供一种存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行第一方面所提供的任意一种可能的并发线程处理方法。
本申请提供了一种并发线程处理方法、装置、电子设备以及存储介质,通过先将接收到的待处理并发线程压入限时锁的等待队列中,然后利用预设限时锁分配模型确定等待队列中各个待处理并发线程的持锁状态,接着在限时锁的限时时间内对持锁线程进行处理。通过限时锁约束每个线程占用处理器的时间,实现了缩短并发线程异常时处理器的等待时间,解决了现有技术缺乏对异常线程的管理工具和方法,导致线程处理缓慢进而影响真个系统的并发处理性能的技术问题,达到了提高系统的并发处理性能的技术效果。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a-1b为本申请提供的现有技术处理并发线程拥堵的场景示意图;
图2为本申请实施例提供的一种并发线程处理方法的原理示意图;
图3为本申请实施例提供的一种并发线程处理方法的流程示意图;
图4为本申请提供的另一种并发线程处理方法的流程示意图;
图5为本申请提供的一种并发线程处理装置的结构示意图;
图6为本申请提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,包括但不限于对多个实施例的组合,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有的计算机线程处理方案中,在面对短时间内激增的大量线程等待处理时,一般是采取提高中央处理单元CPU的单位时间内的处理能力,加快线程的处理速度,或者是采取多核措施,增加多个CPU并行处理,以增加系统的并发处理能力。
但是CPU的运算能力不可能无限提升,多核CPU的处理方案也面临着成本的压力,并且在实际的大量测试以及调研当中,发现在绝大多数情况下,CPU的运算能力是足够的,而面对于大量的并发线程,影响系统的并发处理能力的。
为提高系统在面对短时激增的大量并发线程时的处理能力,本申请提出了一种并发线程处理方法,下面结合附图来进行说明。
图1a-1b为本申请提供的现有技术处理并发线程拥堵的场景示意图。如图1a所示,多个并发线程101由资源分配模块103来分配进入中央处理单元CPU102的先后次序,在现有技术中资源分配模块103要等到CPU102处理完当前线程后,才会分配下一个线程来进行处理,但是当CPU102处理的当前线程发生异常时,CPU102只能进入等待,造成单个线程的处理时间延长,并且对于CPU102的计算能力发挥不出来,造成了CPU102计算能力不足的假象。如图1b所示,现有技术中一般发现线程拥堵时,采取的措施是让CPU102增加并行线程处理能力,如多核方案,或者是多通道并行处理线程,还或者是通过当前线程的自我销毁重新生成新线程来重新排队,避免CPU102的计算通道被占用。但是这样的处理方式或陷入到无限增加CPU102处理能力的死循环中,或者是当前线程不断销毁再生造成线程对应的目标任务得不到及时处理而影响用户体验的问题。
未解决上述问题,本申请实施例提供了一种并发线程处理方法,该方法的原理如图2所示,具体步骤如图3所示。
图2为本申请实施例提供的一种并发线程处理方法的原理示意图,如图2所示,资源分配模块103将并发线程101压入到等待队列210当中,形成等待中的待处理线程211-215,并且给等待队列中的待处理线程211添加上了限时锁,CPU102在限时时间220的时间范围内处理带有限时锁的待处理线程211,处理时间超出限时时间220时,待处理线程211的限时锁就会被释放,再分配到等待队列210的其它待处理线程上,如待处理线程212上,CPU102再次在限时时间220的时间范围内处理新的持锁线程即待处理线程212,而未处理完的待处理线程211则回到等待队列中,等待重新分配到限时锁。只有持有限时锁的待处理线程才会被CPU102所处理。
通过引入限时锁,保证了CPU102能够最大程度地发挥出计算能力,从而使得等待队列中的待处理线程的线程进度能够得到快速推进,实现了用密集的串行短时高CPU利用率模拟并行处理通道的效果,这样就能够充分发挥出CPU102的计算能力,而减少多核CPU或者多通道CPU的制造成本,并提高了系统的并行处理能力。
图3为本申请实施例提供的一种并发线程处理方法的流程示意图,如图3所示,该并发线程处理方法的具体步骤,包括:
S301、将接收到的待处理并发线程压入限时锁的等待队列中。
在本步骤中,限时锁用于对待处理并发线程的触发逻辑进行管理。由于在本实施例中,中央处理器只对持有限时锁的并发线程进行处理,所以并发线程需要持锁,就要先进入等待队列中等待分配。
具体的,当接收到待处理并发线程时,检测限时锁的等待队列是否有空位,若有,则将与空位数相同数量的待处理并发线程按预设规则压入等待队列中。
需要说明的是,预设规则包括:接收到待处理并发线程的时间,待处理并发线程的重要性权重指标等。
S302、利用预设限时锁分配模型确定等待队列中各个待处理并发线程的持锁状态。
在本步骤中,持锁状态用于表征线程处理时间优先级。
具体的,检测到等待队列非空,并且中央处理器当前没有正在处理的线程时,将等待队列中的至少一个待处理并发线程的持锁状态设置为目标状态。
在一种可能的实现方式中,目标状态为加锁状态,加锁状态表面待处理并发线程是限时锁的持有对象。中央处理器只处理持有限时锁的线程。
在另一种可能的实现方式中,当检测到等待队列非空,并且中央处理器当前没有正在处理的线程时,先将所有等待队列中的待处理并发线程按照预设顺序(如接收到的时间顺序或者线程对应的目标任务的重要性指标排序)进行排序,然后给位于首位的或者前N位(N大于或等于1)的待处理并发线程分配限时锁,即待处理并发线程的持锁状态设置为加锁状态。
需要说明的是,限时锁的数量与CPU的处理能力相关,其数量是有限的,并且小于要处理的并发线程总数,本实施例不对限时锁的数量进行限定,本领域技术人员可以根据实际情况决定限时锁的数量。
还需要说明的是,本步骤是一个循环重复执行的步骤,只要CPU没有在处理线程,或者说是当前正在处理的线程由于限时时间到了而被释放了限时锁时,或当前处理的线程已经在限时时间内被处理完毕时,就会触发重新分配持锁状态。
例如,如图2所示,待处理线程211-215的不同填充图案,就代表着不同的优先级,可以根据每个并发线程的属性特征,如目标任务的重要性权重、线程生成时间、目标任务类型等来给不同的并发线程设定持锁状态。并且预设限时锁分配模型在CPU处理完持锁线程后,直接进入持锁状态再分配,以指定下一个持锁线程,或者是下几个持锁线程的持锁顺序。因为某些线程是具备一定的关联性或者执行时必须是要有顺序要求的,因此可以将几个待处理并发线程作为一个持锁顺序集分配持锁顺序。
还需要说明的是,在一种可能的设计中,线程处理时间优先级与限时时间满足预设对应关系。例如:一级优先级对应限时时间为2min,二级优先级对应限时时间为30s。这样通过时间优先级就可以进一步更灵活地调整并发线程出现异常时中央处理器的等待时间,从而可以根据并发线程对应的目标任务的重要程度来分配等待时间,达到提高用户对系统的使用体验。
S303、在限时锁的限时时间内对持锁线程进行处理。
在本步骤中,持锁线程为持锁状态为目标状态的线程。中央处理器只处理持锁线程,并且要在限时时间内处理完毕,只要处理时间达到限时时间,那么当前持锁线程所持有的限时锁就会被释放,即当前的并发线程不再持有限时锁,无论其是否被处理完成,都将被挂起。而没有处理完成的并发线程可以重新压入到等待队列中,如压入原来的排序位置,或者压入到等待队列的最末端。在一种可能的设计中,还可以单独设置异常队列或者根据进程处理进度范围设置的进度分组队列中,由预设限时锁分配模型在下次限时锁被释放后,将限时锁优先分配给异常队列或进度分组队列的并发线程。
本申请实施例提供了一种并发线程处理方法,通过先将接收到的待处理并发线程压入限时锁的等待队列中,然后利用预设限时锁分配模型确定等待队列中各个待处理并发线程的持锁状态,接着在限时锁的限时时间内对持锁线程进行处理。通过限时锁约束每个线程占用处理器的时间,实现了缩短并发线程异常时处理器的等待时间,解决了现有技术缺乏对异常线程的管理工具和方法,导致线程处理缓慢进而影响真个系统的并发处理性能的技术问题,达到了提高系统的并发处理性能的技术效果。
图4为本申请提供的另一种并发线程处理方法的流程示意图。如图4所示,该并发线程处理方法的具体步骤包括:
S401、将接收到的待处理并发线程压入限时锁的等待队列中。
在本步骤中,具体的,包括:
将待处理并发线程按预设排序算法进行排序,确定并发线程序列;
所述等待队列为所述并发线程序列。
S402、按等待队列中各个待处理并发线程的排列顺序,每次修改排名前N位的待处理并发线程的持锁状态为目标状态。
在本步骤中,N小于或等于等待队列中的待处理并发线程的数量。
在一种可能的实现方式中,目标状态包括:加锁状态。加锁状态用于表示需要立即处理的线程。
需要说明的是,目标状态对应着待处理并发线程持有限时锁或者是即将持有限时锁,而只有持有限时锁的并发线程才能在下一个限时时间内被中央处理器处理。
在一种可能的实现方式中,N等于1,即只把排序在首位的待处理并发线程的持锁状态修改为目标状态,也就是说只给排序在首位的待处理并发线程的分配限时锁。
还需要说明的是,处于目标状态的待处理并发线程为持锁线程。
S403、检测是否存在巡检线程,若否,则创建所述巡检线程。
在本实施例中,利用巡检线程来对并发线程持有限时锁的时间进行监视,以达到限时锁的限时效果,实现尽可能减少中央处理器的等待时间,从而使得中央处理器的计算能力能够得到更为充分的利用。
需要说明的是,若检测存在巡检线程,则无需重新创建巡检线程,直接执行步骤S404。
S404、在限时锁的限时时间内对持锁线程进行处理,并利用限时锁的巡检线程监视持锁线程的处理时间。
在本步骤中,具体包括:
在开始处理持锁线程的同时,根据当前时刻以及限时时间,确定限时结束时刻;
将限时结束时刻设置到巡检线程中;
巡检线程监测当前时刻是否达到限时结束时刻。
S405、若处理时间小于限时时间,则利用预设限时锁分配模型重新指定持锁线程。
在本步骤中,当中央处理器在限时锁对应的限时时间内就已经处理完了持锁线程对应的目标任务,则该线程执行完毕释放限时锁,就需要为中央处理器指定下一个处理对象。
重新指定持锁线程,包括:
将等待队列或异常队列中预设位置的并发线程的持锁状态设置为目标状态。
需要说明的是,在本实施例中,异常队列是当持锁线程的处理时间达到了限时时间,仍没有被处理完毕时,就将持锁线程对应的并发线程压入到异常队列中。一般情况下,在限时时间内是能够完成持锁线程对应的目标任务的,但是如果在处理过程中,持锁线程发生了异常状况,如网络卡顿没有接收到反馈信息,或摄像头损坏无法接收到图像数据等,就会使得持锁线程卡在某一步骤中,这样就会使得所需要的处理时间大于限时时间,因此在本实施例中设置异常队列来专门放置这种并发线程。并且,对于处在异常队列中的并发线程,在下一次分配限时锁时,会被优先分配,以尽快结束被处理过的线程。这对于要求单个线程尽快完成的系统来说,能提高系统的并发处理能力的同时,还保证了优先处理线程能够尽快处理完成。
S406、若处理时间达到限时时间,则将持锁线程对应的并发线程压入限时锁的异常队列中。
S407、巡检线程监测异常队列中的异常并发线程是否满足预设条件。
在本步骤中,若巡检线程监测到异常队列中的异常并发线程满足预设条件,则在下一次循环执行S405的重新指定持锁线程时,指定异常并发线程为持锁线程。
S408、当巡检线程监测到异常并发线程作为持锁线程时的处理时间到达限时时间时,将异常并发线程重新压入等待队列中,重新等待预设限时锁分配模型指定为持锁线程。
在本步骤中,对于处于异常队列中的并发线程再次被分配到限时锁,并且被中央处理器处理时,其再次发生了异常情况,或者是上一次的异常情况并没有得到恢复时,就证明此异常情况需要更长的恢复时间,因此在本实施例中,在再次到达限时锁的限时时间的时候,就把这个异常并发线程重新放入等待队列中,如放入到等待队列的最末尾排队等待分配限时锁,这样就能够在兼顾其它线程处理的同时,留给该异常并发线程足够的恢复时间。
本申请实施例提供了一种并发线程处理方法,通过先将接收到的待处理并发线程压入限时锁的等待队列中,然后利用预设限时锁分配模型确定等待队列中各个待处理并发线程的持锁状态,接着在限时锁的限时时间内对持锁线程进行处理。通过限时锁约束每个线程占用处理器的时间,实现了缩短并发线程异常时处理器的等待时间,解决了现有技术缺乏对异常线程的管理工具和方法,导致线程处理缓慢进而影响真个系统的并发处理性能的技术问题,达到了提高系统的并发处理性能的技术效果。
图5为本申请提供的一种并发线程处理装置的结构示意图。该物联网固件动态检测装置500可以通过软件、硬件或者两者的结合实现。
如图5所示,该物联网固件动态检测装置500包括:
接收模块501,用于接收待处理并发线程;
限时锁模块502,用于对所述待处理并发线程的触发逻辑进行管理;
处理模块503,用于将所述待处理并发线程压入所述限时锁模块的等待队列子模块中;
所述处理模块503,还用于利用预设限时锁分配模型确定所述等待队列子模块中各个待处理并发线程的持锁状态,其中,所述持锁状态用于表征线程处理时间优先级;
所述处理模块503,还用于在所述限时锁模块502设定的限时时间内对持锁线程进行处理,所述持锁线程为所述持锁状态为目标状态的线程。
在一种可能的设计中,所述线程处理时间优先级与所述限时时间满足预设对应关系。
可选的,所述处理模块503,用于将所述待处理并发线程压入所述限时锁模块的等待队列子模块中,包括:
所述处理模块503,用于将所述待处理并发线程按预设排序算法进行排序,确定并发线程序列;所述等待队列为所述并发线程序列。
可选的,所述处理模块503,还用于利用预设限时锁分配模型确定所述等待队列子模块中各个待处理并发线程的持锁状态,包括:
所述处理模块503,还用于按等待队列中各个所述待处理并发线程的排列顺序,每次修改排名前N位的所述待处理并发线程的所述持锁状态为所述目标状态;所述N小于或等于所述等待队列中的所述待处理并发线程的数量。
可选的,所述N等于1。
进一步可选的,所述目标状态包括加锁状态,所述加锁状态用于表示需要立即处理的线程。
在一种可能的设计中,所述处理模块503,还用于在所述限时锁模块502设定的限时时间内对持锁线程进行处理,包括:
所述处理模块503,还用于利用所述限时锁模块502的巡检线程子模块5021监视所述持锁线程的处理时间;
所述处理模块503,还用于若所述处理时间小于所述限时时间,则利用所述预设限时锁分配模型重新指定所述持锁线程。
在一种可能的设计中,所述处理模块503,还用于若所述处理时间达到所述限时时间,则将所述持锁线程对应的并发线程压入所述限时锁模块502的异常队列子模块5023中;
所述处理模块503,还用于若所述巡检线程子模块监测到所述异常队列子模块中的异常并发线程满足预设条件,在下一次重新指定所述持锁线程时,指定所述异常并发线程为所述持锁线程。
在一种可能的设计中,所述处理模块503,还用于当所述巡检线程子模块5021监测到所述异常并发线程作为所述持锁线程时的所述处理时间到达所述限时时间时,将所述异常并发线程重新压入所述等待队列子模块5022中,重新等待所述预设限时锁分配模型指定为所述持锁线程。
在一种可能的设计中,所述处理模块503,还用于重新指定所述持锁线程,包括:
所述处理模块503,还用于将所述等待队列子模块5022或所述异常队列子模块5023中预设位置的所述并发线程的持锁状态设置为目标状态。
可选的,在所述处理模块503,还用于利用所述限时锁模块502的巡检线程子模块5021监视所述持锁线程的处理时间之前,还包括:
检测是否存在所述巡检线程,若否,则创建所述巡检线程。
在一种可能的设计中,所述处理模块503,还用于利用所述限时锁模块502的巡检线程子模块5021监视所述持锁线程的处理时间,包括:
所述处理模块503,还用于在开始处理所述持锁线程的同时,根据当前时刻以及所述限时时间,确定限时结束时刻;
所述处理模块503,还用于将所述限时结束时刻设置到所述巡检线程子模块5021中;
所述巡检线程子模块5021,用于监测当前时刻是否达到所述限时结束时刻。
值得说明的是,图5所示实施例提供的并发线程处理装置,可以执行上述任一方法实施例所提供的方法,其具体实现原理、技术特征、专业名词解释以及技术效果类似,在此不再赘述。
图6为本申请提供的一种电子设备的结构示意图。如图6所示,该电子设备600可以包括:至少一个处理器601和存储器602。图6示出的是以一个处理器为例的电子设备。
存储器602,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器602可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器601用于执行存储器602存储的计算机执行指令,以实现以上各方法实施例所述的方法。
其中,处理器601可能是一个中央处理器(central processing unit,简称为CPU),或者是特定集成电路(application specific integrated circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选地,存储器602既可以是独立的,也可以跟处理器601集成在一起。当所述存储器602是独立于处理器601之外的器件时,所述电子设备600,还可以包括:
总线603,用于连接所述处理器601以及所述存储器602。总线可以是工业标准体系结构(industry standard architecture,简称为ISA)总线、外部设备互连(peripheralcomponent,PCI)总线或扩展工业标准体系结构(extended industry standardarchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器602和处理器601集成在一块芯片上实现,则存储器602和处理器601可以通过内部接口完成通信。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random accessmemory,RAM)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述各方法实施例中的方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (15)
1.一种并发线程处理方法,其特征在于,包括:
将接收到的待处理并发线程压入限时锁的等待队列中,所述限时锁用于对所述待处理并发线程的触发逻辑进行管理;
利用预设限时锁分配模型确定所述等待队列中各个待处理并发线程的持锁状态,其中,所述持锁状态用于表征线程处理时间优先级;
在所述限时锁的限时时间内对持锁线程进行处理,所述持锁线程为所述持锁状态为目标状态的线程。
2.根据权利要求1所述的并发线程处理方法,其特征在于,所述线程处理时间优先级与所述限时时间满足预设对应关系。
3.根据权利要求1所述的并发线程处理方法,其特征在于,所述将接收到的待处理并发线程压入限时锁的等待队列中,包括:
将所述待处理并发线程按预设排序算法进行排序,确定并发线程序列;
所述等待队列为所述并发线程序列。
4.根据权利要求1-3中任意一项所述的并发线程处理方法,其特征在于,所述利用预设限时锁分配模型确定所述等待队列中各个待处理并发线程的持锁状态,包括:
按等待队列中各个所述待处理并发线程的排列顺序,每次修改排名前N位的所述待处理并发线程的所述持锁状态为所述目标状态;
所述N小于或等于所述等待队列中的所述待处理并发线程的数量。
5.根据权利要求4所述的并发线程处理方法,其特征在于,所述N等于1。
6.根据权利要求5所述的并发线程处理方法,其特征在于,所述目标状态包括加锁状态,所述加锁状态用于表示需要立即处理的线程。
7.根据权利要求1所述的并发线程处理方法,其特征在于,所述在所述限时锁的限时时间内对持锁线程进行处理,包括:
利用所述限时锁的巡检线程监视所述持锁线程的处理时间;
若所述处理时间小于所述限时时间,则利用所述预设限时锁分配模型重新指定所述持锁线程。
8.根据权利要求7所述的并发线程处理方法,其特征在于,还包括:
若所述处理时间达到所述限时时间,则将所述持锁线程对应的并发线程压入所述限时锁的异常队列中;
若所述巡检线程监测到所述异常队列中的异常并发线程满足预设条件,在下一次重新指定所述持锁线程时,指定所述异常并发线程为所述持锁线程。
9.根据权利要求8所述的并发线程处理方法,其特征在于,还包括:
当所述巡检线程监测到所述异常并发线程作为所述持锁线程时的所述处理时间到达所述限时时间时,将所述异常并发线程重新压入所述等待队列中,重新等待所述预设限时锁分配模型指定为所述持锁线程。
10.根据权利要求9所述的并发线程处理方法,其特征在于,所述重新指定所述持锁线程,包括:
将所述等待队列或所述异常队列中预设位置的所述并发线程的持锁状态设置为目标状态。
11.根据权利要求7-10中任意一项所述的并发线程处理方法,其特征在于,在所述利用所述限时锁的巡检线程监视所述持锁线程的处理时间之前,还包括:
检测是否存在所述巡检线程,若否,则创建所述巡检线程。
12.根据权利要求7所述的并发线程处理方法,其特征在于,所述利用所述限时锁的巡检线程监视所述持锁线程的处理时间,包括:
在开始处理所述持锁线程的同时,根据当前时刻以及所述限时时间,确定限时结束时刻;
将所述限时结束时刻设置到所述巡检线程中;
所述巡检线程监测当前时刻是否达到所述限时结束时刻。
13.一种并发线程处理装置,其特征在于,包括:
接收模块,用于接收待处理并发线程;
限时锁模块,用于对所述待处理并发线程的触发逻辑进行管理;
处理模块,用于将所述待处理并发线程压入所述限时锁模块的等待队列子模块中;
所述处理模块,还用于利用预设限时锁分配模型确定所述等待队列子模块中各个待处理并发线程的持锁状态,其中,所述持锁状态用于表征线程处理时间优先级;
所述处理模块,还用于在所述限时锁模块设定的限时时间内对持锁线程进行处理,所述持锁线程为所述持锁状态为目标状态的线程。
14.一种电子设备,其特征在于,包括:
处理器;以及,
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至12任一项所述的并发线程处理方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12任一项所述的并发线程处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011047673.4A CN113760369B (zh) | 2020-09-29 | 2020-09-29 | 并发线程处理方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011047673.4A CN113760369B (zh) | 2020-09-29 | 2020-09-29 | 并发线程处理方法、装置、电子设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113760369A true CN113760369A (zh) | 2021-12-07 |
CN113760369B CN113760369B (zh) | 2024-11-26 |
Family
ID=78785834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011047673.4A Active CN113760369B (zh) | 2020-09-29 | 2020-09-29 | 并发线程处理方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760369B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114528113A (zh) * | 2022-04-24 | 2022-05-24 | 广州中望龙腾软件股份有限公司 | 一种线程锁管理系统、方法、设备和可读介质 |
CN115016849A (zh) * | 2022-04-19 | 2022-09-06 | 展讯通信(上海)有限公司 | 一种电子系统控制方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161539A1 (en) * | 2009-12-31 | 2011-06-30 | International Business Machines Corporation | Opportunistic use of lock mechanism to reduce waiting time of threads to access a shared resource |
CN103092682A (zh) * | 2011-10-28 | 2013-05-08 | 浙江大华技术股份有限公司 | 异步网络应用程序处理方法 |
CN103279331A (zh) * | 2013-05-31 | 2013-09-04 | 中国电子科技集团公司第十五研究所 | Android系统多任务并发处理方法及装置 |
CN104267929A (zh) * | 2014-09-30 | 2015-01-07 | 香港应用科技研究院有限公司 | 计算系统以及在该计算系统中操作锁的方法 |
CN104572276A (zh) * | 2014-12-17 | 2015-04-29 | 北京可思云海科技有限公司 | 一种基于云计算的并发数据处理方法 |
US20160092280A1 (en) * | 2014-09-30 | 2016-03-31 | Hong Kong Applied Science and Technology Research Institute Company Limited | Adaptive Lock for a Computing System having Multiple Runtime Environments and Multiple Processing Units |
CN105760519A (zh) * | 2016-02-26 | 2016-07-13 | 北京鲸鲨软件科技有限公司 | 一种集群文件系统及其文件锁分配方法 |
CN111488255A (zh) * | 2020-03-27 | 2020-08-04 | 深圳壹账通智能科技有限公司 | 多线程并发监控方法、装置、设备及存储介质 |
CN111552574A (zh) * | 2019-09-25 | 2020-08-18 | 华为技术有限公司 | 一种多线程同步方法及电子设备 |
-
2020
- 2020-09-29 CN CN202011047673.4A patent/CN113760369B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161539A1 (en) * | 2009-12-31 | 2011-06-30 | International Business Machines Corporation | Opportunistic use of lock mechanism to reduce waiting time of threads to access a shared resource |
CN103092682A (zh) * | 2011-10-28 | 2013-05-08 | 浙江大华技术股份有限公司 | 异步网络应用程序处理方法 |
CN103279331A (zh) * | 2013-05-31 | 2013-09-04 | 中国电子科技集团公司第十五研究所 | Android系统多任务并发处理方法及装置 |
CN104267929A (zh) * | 2014-09-30 | 2015-01-07 | 香港应用科技研究院有限公司 | 计算系统以及在该计算系统中操作锁的方法 |
US20160092280A1 (en) * | 2014-09-30 | 2016-03-31 | Hong Kong Applied Science and Technology Research Institute Company Limited | Adaptive Lock for a Computing System having Multiple Runtime Environments and Multiple Processing Units |
CN104572276A (zh) * | 2014-12-17 | 2015-04-29 | 北京可思云海科技有限公司 | 一种基于云计算的并发数据处理方法 |
CN105760519A (zh) * | 2016-02-26 | 2016-07-13 | 北京鲸鲨软件科技有限公司 | 一种集群文件系统及其文件锁分配方法 |
CN111552574A (zh) * | 2019-09-25 | 2020-08-18 | 华为技术有限公司 | 一种多线程同步方法及电子设备 |
CN111488255A (zh) * | 2020-03-27 | 2020-08-04 | 深圳壹账通智能科技有限公司 | 多线程并发监控方法、装置、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
IEEE,("ABSTRACT":THREAD) AND ("ABSTRACT":LOCK) AND ("ALL METADATA":CONCURRENCY) 等: "Performance comparison of various STM concurrency control protocols using synchrobench", 2017 NATIONAL CONFERENCE ON PARALLEL COMPUTING TECHNOLOGIES (PARCOMPTECH), 31 December 2017 (2017-12-31) * |
崔慎智;陈志泊;: "基于多代理和多优先队列的短信实时并发算法", 计算机工程, no. 03, 5 February 2011 (2011-02-05) * |
张垠波;: "线程池技术在并发服务器中的应用", 计算机与数字工程, no. 07, 20 July 2012 (2012-07-20) * |
李涛;董前琨;张帅;孔令晏;康宏;杨愚鲁;: "基于线程池的GPU任务并行计算模式研究", 计算机学报, no. 10, 29 December 2017 (2017-12-29) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115016849A (zh) * | 2022-04-19 | 2022-09-06 | 展讯通信(上海)有限公司 | 一种电子系统控制方法、装置、设备及存储介质 |
CN115016849B (zh) * | 2022-04-19 | 2024-11-08 | 展讯通信(上海)有限公司 | 一种电子系统控制方法、装置、设备及存储介质 |
CN114528113A (zh) * | 2022-04-24 | 2022-05-24 | 广州中望龙腾软件股份有限公司 | 一种线程锁管理系统、方法、设备和可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113760369B (zh) | 2024-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111176852B (zh) | 资源分配方法、装置、芯片及计算机可读存储介质 | |
JP3678414B2 (ja) | 多重プロセッサ・システム | |
US9582312B1 (en) | Execution context trace for asynchronous tasks | |
KR101651871B1 (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
US20120066683A1 (en) | Balanced thread creation and task allocation | |
CN106569891B (zh) | 一种存储系统中任务调度执行的方法和装置 | |
JP6172649B2 (ja) | 情報処理装置、プログラム、及び、情報処理方法 | |
KR101640848B1 (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
TW202246977A (zh) | 一種任務調度方法、任務調度裝置、電腦設備、電腦可讀儲存媒介和電腦程式產品 | |
WO2024119763A1 (zh) | 一种容器集群算力调度方法及相关装置 | |
JP2013515991A (ja) | アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム | |
CN103440173A (zh) | 一种多核处理器的调度方法和相关装置 | |
CN114168302B (zh) | 任务调度方法、装置、设备及存储介质 | |
CN112181645B (zh) | 一种资源调度的方法、装置、设备及存储介质 | |
CN111782383A (zh) | 任务分配方法、服务器、电子终端及计算机可读存储介质 | |
CN106528288A (zh) | 一种资源管理方法、装置和系统 | |
CN113760369A (zh) | 并发线程处理方法、装置、电子设备以及存储介质 | |
CN106775948A (zh) | 一种基于优先级的云任务调度方法及装置 | |
CN114896068A (zh) | 资源分配方法、资源分配装置、电子设备及存储介质 | |
CN112214299A (zh) | 多核处理器及其任务调度方法和装置 | |
CN107357640B (zh) | 多线程数据库的请求处理方法及装置、电子设备 | |
CN111143063B (zh) | 任务的资源预约方法及装置 | |
CN105718318B (zh) | 一种基于辅助工程设计软件的集合式调度优化方法 | |
US20140047454A1 (en) | Load balancing in an sap system |
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 |