预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)国家知识产权局(12)发明专利申请(10)申请公布号CN115934370A(43)申请公布日2023.04.07(21)申请号202211664341.X(22)申请日2022.12.23(71)申请人科东(广州)软件科技有限公司地址510530广东省广州市黄埔区伴河路136号A栋801-810房(72)发明人彭元志(74)专利代理机构北京品源专利代理有限公司11332专利代理师赵翠香(51)Int.Cl.G06F9/52(2006.01)权利要求书2页说明书8页附图3页(54)发明名称自旋锁的获取方法、装置、设备及存储介质(57)摘要本发明公开了一种自旋锁的获取方法、装置、设备及存储介质。该方法包括:当前处理器申请自旋锁时,所述处理器获取预先分配的本地锁结构;所述本地锁结构包括本地自旋变量;处理器获取自旋锁的占用状态,若未被占用,则直接获取自旋锁;否则,配置本地自旋变量为第一值,并将本处理器挂接到自旋锁申请链末端的处理器上,自旋等待本地自旋变量为第二值时,获取自旋锁。本实施例,通过基于链表结构的自旋锁以及在根据处理器的自旋锁的占用状态进行自旋锁分配的过程中,作为锁申请者的处理器仅在本地自旋等待自旋锁的方式,极大地减少了不必要的处理器缓存同步的次数,降低了总线和内存的开销,提高了自旋锁的性能,也极大提高了内核的性能。CN115934370ACN115934370A权利要求书1/2页1.一种自旋锁的获取方法,其特征在于,包括:当前处理器申请自旋锁时,所述处理器获取预先分配的本地锁结构;所述本地锁结构包括本地自旋变量;所述处理器获取自旋锁的占用状态,若未被占用,则直接获取自旋锁;否则,配置所述本地自旋变量为第一值,并将本处理器挂接到自旋锁申请链末端的处理器上,自旋等待所述本地自旋变量为第二值时,获取自旋锁。2.根据权利要求1所述的方法,其特征在于,所述本地锁结构还包括:指向下一自旋锁申请处理器的节点指向变量;所述将本处理器挂接到自旋锁申请链末端的处理器上,包括:将自旋锁申请链末端的处理器的节点指向变量指向所述当前处理器;其中当前处理器更新为自旋锁申请链末端处理器。3.根据权利要求1所述的方法,其特征在于,在所述处理器获取预先分配的本地锁结构后,还包括:将本地锁结构中的节点指向变量设为空。4.根据权利要求2所述的方法,其特征在于,所述处理器获取自旋锁的占用状态,包括:所述处理器获取自旋锁数据结构;其中,所述自旋锁数据结构为指向所述自旋锁申请链末端处理器的指向变量;若所述自旋锁数据结构为空,则所述自旋锁未被占用;若所述自旋锁数据结构为非空,则所述自旋锁被占用。5.根据权利要求4所述的方法,其特征在于,直接获取自旋锁,还包括:在所述处理器直接获取自旋锁时,配置所述自旋锁数据结构指向所述处理器。6.根据权利要求4所述的方法,其特征在于,还包括:当前处理器释放所述自旋锁时,判断所述当前处理器的节点指向变量是否为空;若节点指向变量为空,则将所述自旋锁的自旋锁数据结构配置为空;若节点指向变量为非空,则配置下一个自旋锁申请处理器的本地自旋变量为第二值,以使下一自旋锁申请处理器获取到所述自旋锁。7.根据权利要求2所述的方法,其特征在于,所述本地锁结构与缓存行对齐,且采用设定关键字进行修饰。8.一种自旋锁的获取装置,其特征在于,包括:本地锁结构获取模块,用于当前处理器申请自旋锁时,所述处理器获取预先分配的本地锁结构;所述本地锁结构包括本地自旋变量;占用状态获取模块,用于所述处理器获取自旋锁的占用状态,若未被占用,则直接获取自旋锁;否则,配置所述本地自旋变量为第一值,并将本处理器挂接到自旋锁申请链末端的处理器上,自旋等待所述本地自旋变量为第二值时,获取自旋锁。9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑7中任一项所述的自旋锁的获取方法。2CN115934370A权利要求书2/2页10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1‑7中任一项所述的自旋锁的获取方法。3CN115934370A说明书1/8页自旋锁的获取方法、装置、设备及存储介质技术领域[0001]本发明实施例涉及资源共享技术领域,尤其涉及一种自旋锁的获取方法、装置、设备及存储介质。背景技术[0002]随着多核技术的发展,越来越多的计算机设备使用多核处理器,然而多核硬件的发展引入了新的同步问题,为了解决多核的同步问题,保证共享资源访问的正确性,引入了自旋锁(如:自旋锁或者互斥锁)技术。[0003]现有的