数据访问方法、装置及设备制造方法及图纸

技术编号:22075389 阅读:23 留言:0更新日期:2019-09-12 14:02
本公开实施例提供一种数据访问方法、装置及设备,该方法包括:在第一线程访问临界区之前,在第一共享区域中写入所述第一线程对应的随机数,所述第一共享区域可存储一个随机数;在第二共享区域为空、或者所述第二共享区域中的随机数为预设值时,在所述第二共享区域中写入所述第一线程对应的随机数,所述第二共享区域可存储一个随机数;根据所述第一共享区域中当前时刻的随机数和所述第二共享区域中的随机数,确定所述第一线程是否访问所述临界区。提高了数据访问的可靠性。

Data access methods, devices and devices

【技术实现步骤摘要】
数据访问方法、装置及设备
本公开实施例涉及计算机
,尤其涉及一种数据访问方法、装置及设备。
技术介绍
临界区指的是一个访问共用资源的程序片段,在同一时刻,最多允许一个线程访问临界区,即,对临界区的访问为互斥的。在多数设备中,可以基于设备的硬件实现互斥锁,例如,可以基于设备的中央处理器(CentralProcessingUnit,CPU)的原子性、中断以及内存总线机制等实现互斥锁。互斥锁适用于同一进程中多个线程,即,互斥锁可以防止同一进程中的多个线程同时访问临界区,然而,互斥锁无法防止多个进程同时访问临界区,可能使得多个进程同时访问临界区,使得数据访问的出错,进而导致数据访问的可靠性低。
技术实现思路
本公开实施例提供一种数据访问方法、装置及设备,提高了数据访问的可靠性。第一方面,本公开实施例提供一种数据访问方法,包括:在第一线程访问临界区之前,在第一共享区域中写入所述第一线程对应的随机数,所述第一共享区域可存储一个随机数;在第二共享区域为空、或者所述第二共享区域中的随机数为预设值时,在所述第二共享区域中写入所述第一线程对应的随机数,所述第二共享区域可存储一个随机数;根据所述第一共享区域中当前时刻的随机数和所述第二共享区域中的随机数,确定所述第一线程是否访问所述临界区。在一种可能的实施方式中,根据所述第一共享区域中当前时刻的随机数和所述第二共享区域中的随机数,确定所述第一线程是否访问所述临界区,包括:判断所述第一共享区域中当前时刻的随机数是否为所述第一线程对应的随机数;若是,则确定所述第一线程访问所述临界区;若否,则根据所述第二共享区域中的随机数确定所述第一线程是否访问所述临界区。在一种可能的实施方式中,根据所述第二共享区域中的随机数确定所述第一线程是否访问所述临界区,包括:在预设时长之后,判断所述第二共享区域中的随机数是否为所述第一线程对应的随机数,所述预设时长大于预设的对临界区的访问时长;若是,则确定所述第一线程访问所述临界区;若否,则确定所述第一线程不访问所述临界区。在一种可能的实施方式中,在确定所述第一线程访问所述临界区之后,所述方法还包括:控制所述第一线程访问所述临界区;在所述第一线程访问所述临界区结束之后,删除所述第二共享区域中的随机数,或者将所述第二共享区域中的随机数更新为所述预设值。在一种可能的实施方式中,在第二共享区域为空、或者所述第二共享区域中的随机数为预设值时,在所述第二共享区域中写入所述第一线程对应的随机数,包括:执行判断操作,所述判断操作包括:判断所述第二共享区域是否为空,或者所述第二共享区域中的随机数是否为预设值;在第二共享区域为空、或者所述第二共享区域中的随机数为预设值时,在所述第二共享区域中写入所述第一线程对应的随机数;在第二共享区域不是空,且所述第二共享区域中的随机数不是预设值时,则重复执行所述判断操作,直至所述第二共享区域为空、或者所述第二共享区域中的随机数为预设值。在一种可能的实施方式中,执行判断操作之前,还包括:在第一共享区域中写入所述第一线程对应的随机数。在一种可能的实施方式中,在第一共享区域中写入所述第一线程对应的随机数,包括:删除所述第一共享区域中的随机数,并在所述第一共享区域中写入所述第一线程对应的随机数;或者,在所述第一共享区域中写入所述第一线程对应的随机数,所述第一线程对应的随机数覆盖所述第一共享区域中随机数。在一种可能的实施方式中,所述第一共享区域中包括第一参数,所述第一共享区域中的随机数为所述第一参数的值;在第一共享区域中写入第一线程对应的随机数,包括:将所述第一共享区域中的所述第一参数的值设置为所述第一线程对应的随机数。在一种可能的实施方式中,所述第二共享区域中包括第二参数,所述第二共享区域中的随机数为所述第二参数的值;在第二共享区域中写入所述第一线程对应的随机数,包括:将所述第二共享区域中的所述第二参数的值设置为所述第一线程对应的随机数。在一种可能的实施方式中,所述第一共享区域和所述第二共享区域为同一共享区域,所述第一参数和所述第二参数为所述同一共享区域中的参数。第二方面,本公开实施例提供一种数据访问装置,包括写入模块和确定模块,其中,所述写入模块用于,在第一线程访问临界区之前,在第一共享区域中写入所述第一线程对应的随机数,所述第一共享区域可存储一个随机数;所述写入模块还用于,在第二共享区域为空、或者所述第二共享区域中的随机数为预设值时,在所述第二共享区域中写入所述第一线程对应的随机数,所述第二共享区域可存储一个随机数;所述确定模块用于,根据所述第一共享区域中当前时刻的随机数和所述第二共享区域中的随机数,确定所述第一线程是否访问所述临界区。在一种可能的实施方式中,所述确定模块具体用于:判断所述第一共享区域中当前时刻的随机数是否为所述第一线程对应的随机数;若是,则确定所述第一线程访问所述临界区;若否,则根据所述第二共享区域中的随机数确定所述第一线程是否访问所述临界区。在一种可能的实施方式中,所述确定模块具体用于:在预设时长之后,判断所述第二共享区域中的随机数是否为所述第一线程对应的随机数,所述预设时长大于预设的对临界区的访问时长;若是,则确定所述第一线程访问所述临界区;若否,则确定所述第一线程不访问所述临界区。在一种可能的实施方式中,所述装置还包括控制模块和删除模块,其中,所述控制模块用于,在确定所述第一线程访问所述临界区之后,控制所述第一线程访问所述临界区;所述删除模块用于,在所述第一线程访问所述临界区结束之后,删除所述第二共享区域中的随机数,或者将所述第二共享区域中的随机数更新为所述预设值。在一种可能的实施方式中,所述写入模块具体用于:执行判断操作,所述判断操作包括:判断所述第二共享区域是否为空,或者所述第二共享区域中的随机数是否为预设值;在第二共享区域为空、或者所述第二共享区域中的随机数为预设值时,在所述第二共享区域中写入所述第一线程对应的随机数;在第二共享区域不是空,且所述第二共享区域中的随机数不是预设值时,则重复执行所述判断操作,直至所述第二共享区域为空、或者所述第二共享区域中的随机数为预设值。在一种可能的实施方式中,所述写入模块还用于,在所述写模块执行判断操作之前,在第一共享区域中写入所述第一线程对应的随机数。在一种可能的实施方式中,所述写入模块具体用于:删除所述第一共享区域中的随机数,并在所述第一共享区域中写入所述第一线程对应的随机数;或者,在所述第一共享区域中写入所述第一线程对应的随机数,所述第一线程对应的随机数覆盖所述第一共享区域中随机数。在一种可能的实施方式中,所述第一共享区域中包括第一参数,所述第一共享区域中的随机数为所述第一参数的值;所述写入模块具体用于:将所述第一共享区域中的所述第一参数的值设置为所述第一线程对应的随机数。在一种可能的实施方式中,所述第二共享区域中包括第二参数,所述第二共享区域中的随机数为所述第二参数的值;所述写入模块具体用于:将所述第二共享区域中的所述第二参数的值设置为所述第一线程对应的随机数。在一种可能的实施方式中,所述第一共享区域和所述第二共享区域为同一共享区域,所述第一参数和所述第二参数为所述同一共享区域中的参数。第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器本文档来自技高网...

【技术保护点】
1.一种数据访问方法,其特征在于,包括:在第一线程访问临界区之前,在第一共享区域中写入所述第一线程对应的随机数,所述第一共享区域可存储一个随机数;在第二共享区域为空、或者所述第二共享区域中的随机数为预设值时,在所述第二共享区域中写入所述第一线程对应的随机数,所述第二共享区域可存储一个随机数;根据所述第一共享区域中当前时刻的随机数和所述第二共享区域中的随机数,确定所述第一线程是否访问所述临界区。

【技术特征摘要】
1.一种数据访问方法,其特征在于,包括:在第一线程访问临界区之前,在第一共享区域中写入所述第一线程对应的随机数,所述第一共享区域可存储一个随机数;在第二共享区域为空、或者所述第二共享区域中的随机数为预设值时,在所述第二共享区域中写入所述第一线程对应的随机数,所述第二共享区域可存储一个随机数;根据所述第一共享区域中当前时刻的随机数和所述第二共享区域中的随机数,确定所述第一线程是否访问所述临界区。2.根据权利要求1所述的方法,其特征在于,根据所述第一共享区域中当前时刻的随机数和所述第二共享区域中的随机数,确定所述第一线程是否访问所述临界区,包括:判断所述第一共享区域中当前时刻的随机数是否为所述第一线程对应的随机数;若是,则确定所述第一线程访问所述临界区;若否,则根据所述第二共享区域中的随机数确定所述第一线程是否访问所述临界区。3.根据权利要求2所述的方法,其特征在于,根据所述第二共享区域中的随机数确定所述第一线程是否访问所述临界区,包括:在预设时长之后,判断所述第二共享区域中的随机数是否为所述第一线程对应的随机数,所述预设时长大于预设的对临界区的访问时长;若是,则确定所述第一线程访问所述临界区;若否,则确定所述第一线程不访问所述临界区。4.根据权利要求1-3任一项所述的方法,其特征在于,在确定所述第一线程访问所述临界区之后,所述方法还包括:控制所述第一线程访问所述临界区;在所述第一线程访问所述临界区结束之后,删除所述第二共享区域中的随机数,或者将所述第二共享区域中的随机数更新为所述预设值。5.根据权利要求1-4任一项所述的方法,其特征在于,在第二共享区域为空、或者所述第二共享区域中的随机数为预设值时,在所述第二共享区域中写入所述第一线程对应的随机数,包括:执行判断操作,所述判断操作包括:判断所述第二共享区域是否为空,或者所述第二共享区域中的随机数是否为预设值;在第二共享区域为空、或者所述第二共享区域中的随机数为预设值时,在所述第二共享区域中写入所述第一线程对应的随机数;在第二共享区域不是空,且所述第二共享区域中的随机数不是预设值时,则重复执行所述判断操作,直至所述第二共享区域为空、或者所述第二共享区域中的随机数为预设值。6.根据权利要求5所述的方法,其...

【专利技术属性】
技术研发人员:石小涛
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京,11

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

1