读锁操作方法、写锁操作方法及系统技术方案

技术编号:31576019 阅读:22 留言:0更新日期:2021-12-25 11:17
本申请实施例公开了读锁操作方法、写锁操作方法及系统。所述读锁操作方法,包括:设置每个核心对应的私有引用计数;在不同核心的线程对同一数据进行读取过程中,以不同核心对应的私有引用计数进行加读锁、解读锁操作。利用本申请各实施例,可以使得不同核心的线程对同一数据进行读操作时,独立的对该核心对应的私有引用计数操作。这些不同核心对应的私有引用计数不需要在各个核之间同步,因此执行效率得到提升。而且,读锁的扩展性也得以提高,即无论多少个核心的线程并发加、解读锁,加解读锁的时间几乎都不会增加,从而提高了执行效率。从而提高了执行效率。从而提高了执行效率。

【技术实现步骤摘要】
读锁操作方法、写锁操作方法及系统


[0001]本说明书多个实施例涉及信息
,尤其涉及一种读锁操作方法、写锁操作方法及系统。

技术介绍

[0002]线程(thread),也被称为轻量级进程(Lightweight Process,LWP),是进程中某个单一顺序的控制流,并作为程序执行的最小单元。在引入线程的操作系统中,通常把进程作为分配资源的基本单位,把线程作为独立运行和独立调度的基本单位。线程可以并发执行,例如一个进程中的多个线程可以并发执行。不同进程中的线程也能并发执行。特别的,在多计算核心的计算机系统中,例如具有多个CPU核心的计算机系统中,不同核心的线程也可以并发执行。
[0003]多个线程并发执行时,往往需要访问同一数据。从该被访问的数据看,该数据共享给不同线程。在多个线程访问该共享数据时,需要保证该共享数据的完整性。例如,不能两个线程同时修改共享数据;一个线程不能读到修改了一半的共享数据。经典的方式是使用锁(Lock)机制。例如,在线程对数据进行读操作的过程中为该数据加上“读锁”,在线程对数据进行写操作的过程中为该数据加本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种读锁操作方法,应用于多核心的计算机系统中,所述方法包括:设置不同核心分别对应的不同的私有引用计数;在不同核心的线程对同一数据进行读取过程中,每个核心的线程基于对应的私有引用计数,进行针对该同一数据的加读锁、解读锁操作。2.如权利要求1所述的读锁操作方法,设置不同核心分别对应的不同的私有引用计数,包括:在每个核心的线程对该同一数据进行首次加读锁前分配该核心对应的私有引用计数,在该核心的线程对该同一数据的读操作执行完毕之后收回该私有引用计数;或,固定分配每一核心的私用引用计数。3.如权利要求1或2所述的读锁操作方法,设置不同核心分别对应的不同的私有引用计数,包括:设置私有引用计数的数组,将该数组中的不同项分配至不同核心。4.如权利要求3所述的读锁操作方法,将该数组中的不同项分配至不同核心,包括:将该数组中的不同项分配至缓存中不同缓存行中,不同缓存行对应于不同核心。5.如权利要求1所述的读锁操作方法,在不同核心的线程对同一数据进行读取过程中,每个核心基于对应的私有引用计数,进行针对该同一数据的加读锁、解读锁操作,包括:第一核心的线程对该同一数据进行读取过程中,以第一核心对应的私有引用计数进行加读锁、解读锁操作;第二核心的线程对该同一数据进行读取过程中,以第二核心对应的私有引用计数进行加读锁、解读锁操作。6.如权利要求1所述的读锁操作方法,每个核心的线程基于对应的私有引用计数,进行针对该同一数据的加读锁操作,包括:每个核心的线程针对自身对应的私有引用计数执行加1操作;每个核心的线程基于对应的私有引用计数,进行针对该同一数据的解加读锁操作,包括:每个核心的线程针对自身对应的私有引用计数执行减1操作。7.如权利要求1所述的读锁操作方法,所述不同核心对应的私有引用计数进行加读锁之前还包括:不同核心的线程检查该同一数据是否处于写操作过程,且检查结果为否。8.如权利要求6所述的读锁操作方法,每个核心的线程针对自身对应的私有引用计数执行加1操作之后,执行读操作之前,还包括:每个核心的线程检查该同一数据是否处于写操作过程;每个核心的线程执行读操作,包括:每个核心的线程若确定检查结果表征该同一数据不处于写操作过程,则执行读操作。9.一种读锁操作系统,包括数据单元,第一缓存单元,第二缓存单元,第一核心和第二核心,第一核心与第二核心为计算机系统中的不同核心,其中,数据单元,用于存储数据;第一缓存单元,用于保存为第一核心的分配的第一私有引用计数;第二缓存单元,用于保存为第二核心的分...

【专利技术属性】
技术研发人员:席华锋
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1