基于协程的加锁方法、装置制造方法及图纸

技术编号:43477445 阅读:17 留言:0更新日期:2024-11-29 16:51
本申请公开了基于协程的加锁方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:在正在被调用执行的初始协程反复执行尝试加锁操作的过程中,对任务队列中的至少一个协程执行尝试加锁操作,其中,任务队列包括多个可被调度执行的协程;响应于确定至少一个协程中存在加锁成功的目标协程,将目标协程确定为正在被调用执行的协程。该实施方式有效提升了抢锁和任务切换的实时性。

【技术实现步骤摘要】

本申请涉及计算机,具体涉及计算机,尤其涉及一种基于协程的加锁方法和装置。


技术介绍

1、互斥锁(mutual exclusion,linux的实现称为“mutex”),在用户态线程/进程之间进行互斥时,对于无法获得运行权利的线程/进程,需要通过一定程度的延迟等待获得权利的机会。而这个延迟有两种形式,即自旋(spin)等待和挂起(让出cpu,切换其他线程/进程)等待。

2、现有技术中,mutex技术,主要有以下两个方面的问题:1)锁等待(sys_futex系统调用)或者在spin loop阶段产生的线程切换,都需要进行用户态和内核态之间的切换,线程切换代价高;2)在用户态程序处于spin loop状态时,即便被中断(包括定时器中断)处理、信号处理等操作打断,切换至优先级更高或更有机会获得锁权利的线程,中断的实时性仍然较差。


技术实现思路

1、本申请实施例提供了一种基于协程的加锁方法、装置、设备以及存储介质。

2、根据第一方面,本申请实施例提供了一种基于协程的加锁方法,该方法包括:在正在被本文档来自技高网...

【技术保护点】

1.一种基于协程的加锁方法,所述方法包括:

2.根据权利要求1所述的方法,其中,所述对任务队列中的至少一个协程执行尝试加锁操作,包括:

3.根据权利要求2所述的方法,其中,所述调用任务队列中的至少一个协程对应的加锁助手模块,包括:

4.根据权利要求3所述的方法,其中,所述调度模式包括优先级队列,以及所述方法还包括:

5.根据权利要求3所述的方法,其中,所述调度模式包括优先级队列,以及所述方法还包括:

6.根据权利要求3所述的方法,其中,所述调度模式包括优先级队列,以及所述方法还包括:

7.根据权利要求1所述的方法,所...

【技术特征摘要】

1.一种基于协程的加锁方法,所述方法包括:

2.根据权利要求1所述的方法,其中,所述对任务队列中的至少一个协程执行尝试加锁操作,包括:

3.根据权利要求2所述的方法,其中,所述调用任务队列中的至少一个协程对应的加锁助手模块,包括:

4.根据权利要求3所述的方法,其中,所述调度模式包括优先级队列,以及所述方法还包括:

5.根据权利要求3所述的方法,其中,所述调度模式包括优先级队列,以及所述方法还包括:

6.根据权利要求3所述的方法,其中,所述调度模式包括优先级队列...

【专利技术属性】
技术研发人员:孟祥滨张小鹏刘珊
申请(专利权)人:京东科技信息技术有限公司
类型:发明
国别省市:

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

1