临界区加锁方法、装置、终端及存储介质制造方法及图纸

技术编号:20221549 阅读:35 留言:0更新日期:2019-01-28 20:07
本发明专利技术实施例公开了一种临界区加锁方法、装置、终端及存储介质。该方法包括:若接收到临界区中任一线程对共有资源的访问指令,则获取临界区的锁状态参数的当前取值;通过原子操作方式执行比较所述锁状态参数的当前取值与所述锁状态参数的初始值是否相等,以及依据比较结果调整所述锁状态参数的取值,并依据比较结果响应所述访问指令以及控制所述临界区的锁定状态。通过本发明专利技术的技术方案,在保持临界区的共有资源数据一致性的同时,可以提高系统的性能。

【技术实现步骤摘要】
临界区加锁方法、装置、终端及存储介质
本专利技术实施例涉及计算机
,尤其涉及一种临界区加锁方法、装置、终端及存储介质。
技术介绍
自动驾驶系统是一个高并发的系统,目前为了保证运行时数据的一致性,会采用大量锁来对临界区的数据进行保护,其中,临界区是指一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。例如,传感驱动、感知和控制等多个算法模块需要同时访问定位模块,则传感驱动、感知和控制线程的相应线程构成临界区。但是现有的对临界区的加锁方式如互斥锁等,同一时刻只能有一个线程对临界区加锁,会出现而过多的锁等待,从而造成系统性能的下降。
技术实现思路
本专利技术实施例提供一种临界区加锁方法、装置、终端及存储介质,在保持临界区的数据一致性的同时,可以提高系统的性能。第一方面,本专利技术实施例提供了一种临界区加锁方法,包括:若接收到临界区中任一线程对共有资源的访问指令,则获取临界区的锁状态参数的当前取值;通过原子操作方式执行比较所述锁状态参数的当前取值与所述锁状态参数的初始值是否相等,以及依据比较结果调整所述锁状态参数的取值,并依据比较结果响本文档来自技高网...

【技术保护点】
1.一种临界区加锁方法,其特征在于,包括:若接收到临界区中任一线程对共有资源的访问指令,则获取临界区的锁状态参数的当前取值;通过原子操作方式执行比较所述锁状态参数的当前取值与所述锁状态参数的初始值是否相等,以及依据比较结果调整所述锁状态参数的取值,并依据比较结果响应所述访问指令以及控制所述临界区的锁定状态。

【技术特征摘要】
1.一种临界区加锁方法,其特征在于,包括:若接收到临界区中任一线程对共有资源的访问指令,则获取临界区的锁状态参数的当前取值;通过原子操作方式执行比较所述锁状态参数的当前取值与所述锁状态参数的初始值是否相等,以及依据比较结果调整所述锁状态参数的取值,并依据比较结果响应所述访问指令以及控制所述临界区的锁定状态。2.根据权利要求1所述的方法,其特征在于,依据比较结果调整所述锁状态参数的取值,并依据比较结果响应所述访问指令以及控制所述临界区的锁定状态,包括:若接收的是读取指令且所述锁状态参数的当前取值等于所述初始值,则对所述锁状态参数的当前取值增加第一步长值,执行所述读取指令并为所述临界区添加读锁;若接收的是写入指令且所述锁状态参数的当前取值等于所述初始值,则对所述锁状态参数的当前取值减去第二步长值,执行所述写入指令并为所述临界区添加写锁。3.根据权利要求2所述的方法,其特征在于,依据比较结果调整所述锁状态参数的取值,并依据比较结果响应所述访问指令以及控制所述临界区的锁定状态,包括:若接收的是读取指令,且所述锁状态参数的当前取值大于所述初始值,则确定所述临界区处于读锁共享状态,则响应接收的读取指令,并为所述临界区添加新读锁;若接收的是读取指令,且所述锁状态参数的当前取值小于所述初始值,则确定所述临界区处于写锁独占状态,则拒绝接收的读取指令,并拒绝添加读锁。4.根据权利要求2所述的方法,其特征在于,依据比较结果调整所述锁状态参数的取值,并依据比较结果响应所述访问指令以及控制所述临界区的锁定状态,包括:若接收的是写入指令,且所述锁状态参数的当前取值小于或大于所述初始值,则拒绝接收的写入指令,并拒绝添加写锁。5.根据权利要求1所述的方法,其特征在于,通过原子操作方式执行比较所述锁状态参数的当前取值与所述锁状态参数的初始值是否相等,以及依据比较结果调整所述锁状态参数的取值,包括:确定通过原子计数器记录的所述锁状态参数的当前取值与所述锁状态参数的初始值是否相等,以及依据比较结果调整原子计数器记录的锁状态参数的取值。6.一...

【专利技术属性】
技术研发人员:冯凯文陈卓党跃东何玮鲍万宇倪忠俊
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

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

1