一种线程锁管理方法、装置及存储介质制造方法及图纸

技术编号:32576003 阅读:18 留言:0更新日期:2022-03-09 17:05
本申请公开了一种线程锁管理方法、装置及存储介质,属于软件开发技术领域。该方法主要包括:利用从多个线程锁执行任务抽象出的共性代码得到通用任务接口以及通用任务执行器;将多个并发线程通过通用任务接口导入通用任务执行器,并利用通用任务执行器对多个并发线程中抢占到线程锁的线程进行加锁执行。本申请能够减少重复的代码,能够降低开发和维护成本,能够提高软件的开发效率,通用性强且灵活性高。高。高。

【技术实现步骤摘要】
一种线程锁管理方法、装置及存储介质


[0001]本申请涉及软件开发
,特别涉及一种线程锁管理方法、装置及存储介质。

技术介绍

[0002]在传统的软件开发过程中,执行锁一般由程序员进行编写,但执行锁的很多功能都是相似的,且不同的开发人员各自编写的执行锁风格各异。这会导致代码重复率高、开发效率低、开发成本高和护成本高等问题。
[0003]现有技术由开发人员自主编写执行锁主要存在以下几个问题,
[0004]1、开发人员水平参差不齐和代码风格多样,提高了出现漏洞的风险和定位漏洞的难度;
[0005]2、代码文件中重复代码多,消耗存储空间;
[0006]3、代码实现风格不统一,增加了维护人员的理解难度和出错几率,导致维护成本增加。

技术实现思路

[0007]针对现有技术存在的问题,本申请主要提供一种线程锁管理方法、装置及存储介质。
[0008]为了实现上述目的,本申请采用的一个技术方案是:提供一种线程锁管理方法,其包括:通用接口以及通用任务执行器获取过程,利用从多个线程锁执行任务抽象出的共性代码得到通用任务接口以及通用任务执行器;任务执行过程,将多个并发线程通过通用任务接口导入通用任务执行器,并利用通用任务执行器对多个并发线程中抢占到线程锁的线程进行加锁执行。
[0009]本申请采用的另一个技术方案是:提供一种线程锁管理装置,其包括:通用接口以及通用任务执行器获取模块,用于利用从多个线程锁执行任务抽象出的共性代码得到通用任务接口以及通用任务执行器;任务执行模块,用于将多个并发线程通过通用任务接口导入通用任务执行器,并利用通用任务执行器对多个并发线程中抢占到线程锁的线程进行加锁执行。
[0010]本申请采用的另一个技术方案是:提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被操作以执行方案一中的线程锁管理方法。
[0011]本申请的技术方案可以达到的有益效果是:本申请设计了线程锁管理方法、装置及存储介质。该方法能够减少重复的代码,能够降低开发和维护成本,能够提高软件的开发效率,通用性强且灵活性高。
附图说明
[0012]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本申
请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0013]图1是本申请一种线程锁管理方法的一个具体实施方式的示意图;
[0014]图2是本申请一种线程锁管理装置的一个具体实施方式的示意图;
[0015]图3是本申请一种线程锁管理装置的一个具体实施例的示意图。
[0016]通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
[0017]下面结合附图对本申请的较佳实施例进行详细阐述,以使本申请的优点和特征能更易于被本领域技术人员理解,从而对本申请的保护范围做出更为清楚明确的界定。
[0018]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0019]下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
[0020]图1示出了本申请一种线程锁管理方法的一个具体实施方式。
[0021]在图1所示的具体实施方式中,线程锁管理方法主要包括,通用接口以及通用任务执行器获取过程S101,利用从多个线程锁执行任务抽象出的共性代码得到通用任务接口以及通用任务执行器;
[0022]任务执行过程S102,将多个并发线程通过通用任务接口导入通用任务执行器,并利用通用任务执行器对多个并发线程中抢占到线程锁的线程进行加锁执行。
[0023]该具体实施方式,能够减少重复的代码降低存储空间消耗,能够降低开发和维护成本,能够提高软件的开发效率,能够减少出现漏洞的风险和定位漏洞的难度,通用性强且灵活性高、降低维护成本。
[0024]在图1所示的具体实施方式中,线程锁管理方法,包括通用接口以及通用任务执行器获取过程S101,利用从多个线程锁执行任务抽象出的共性代码得到通用任务接口以及通用任务执行器。该过程通过抽取共性代码,减少了类似、重复的冗余代码,节省内存。
[0025]在本申请的一个具体实例中,传统的软件开发,每实现一个新的执行锁功能,就要将线程锁的相关代码在程序中写一遍。这种方式会使类似代码重复增加,造成内存负担,增加计算量。
[0026]本专利技术利用多个线程锁索执行任务的代码,抽象出线程锁执行任务的共性代码,组成执行锁任务工具,该执行锁任务工具包括通用任务接口以及通用任务执行器。在利用
执行锁任务工具进行线程加锁处理时,调用通用任务接口和通用任务执行器的共性代码,并对通用任务接口和通用任务执行器按照线程的参数完成配置,实现线程所对应的任务接口和任务执行器的建立。
[0027]在图1所示的具体实施方式中,线程锁管理方法,还包括任务执行过程S102,将多个并发线程通过通用任务接口导入通用任务执行器,并利用通用任务执行器对多个并发线程中抢占到线程锁的线程进行加锁执行。该过程在执行线程锁程序时只关注线程锁任务执行的内容,其通用性更强,适用范围更广。
[0028]在本申请的一个具体实例中,现实中,各种系统各种软件涉及的业务千千万万,现有技术中,每个线程在执行线程锁定时,需要其对应的接口和执行器,这导致每当要增加新的线程锁定任务时就需要引入新的接口和执行器,这会使程序冗杂,重复代码增加。
[0029]本专利技术利用通用任务接口将不同的线程引入到同一个用任务执行器中,通用执行器按照先后顺序或线程的优先级等原则,对线程所发起的加锁请求进行排序并将排序结果保存在缓存中。当心跳检测检测到执行器中没有正在执行的线程时,将排在首位的加锁请求所对应的线程判断为抢占到线程锁,利用该线程对应的任务接口引入该线程并对该线程进行加锁处理。通用任务执行器自动通过通用任务执行接口实现对线程的加锁处理,因此在使用时只需要关注执行加锁处本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种线程锁管理方法,其特征在于,包括:通用接口以及通用任务执行器获取过程,利用从多个线程锁执行任务抽象出的共性代码得到通用任务接口以及通用任务执行器;任务执行过程,将多个并发线程通过所述通用任务接口导入所述通用任务执行器,并利用所述通用任务执行器对所述多个并发线程中抢占到线程锁的线程进行加锁执行。2.根据权利要求1所述的线程锁管理方法,其特征在于,所述将多个并发线程通过所述通用任务接口导入所述通用任务执行器的过程包括,根据所述多个并发线程中的每个线程配置所述通用任务接口的各个参数得到所述每个线程对应的配置接口;利用每个配置接口将对应所述每个线程导入所述通用任务执行器。3.根据权利要求1所述的线程锁管理方法,其特征在于,所述利用所述通用任务执行器对所述多个并发线程中抢占到线程锁的线程进行加锁执行的过程包括,利用心跳检测对所述线程锁是否正在执行任务进行检测;若检测到所述线程锁不在执行任务,则对抢占到所述线程锁的所述线程进行所述加锁执行。4.根据权利要求1所述的线程锁管理方法,其特征在于,还包括,在所述利用所述通用任务执行器对所述多个并发线程中抢占到线程锁的线程进行加锁执行之前,对缓存中是否存在抢占到线程锁的所述线程的抢占线程锁请求进行检测,若存在所述抢占线程锁请求,则指定所述抢占线程锁请求失效时间。5.根据权利要求1

【专利技术属性】
技术研发人员:郝桃钟敏德覃克天
申请(专利权)人:北京联创新天科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1