[发明专利]一种数据更新、读取方法、装置、设备及存储介质有效
申请号: | 201910256706.7 | 申请日: | 2019-04-01 |
公开(公告)号: | CN109976675B | 公开(公告)日: | 2023-02-03 |
发明(设计)人: | 张浩 | 申请(专利权)人: | 广州市百果园信息技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 511400 广东省广州市番*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 更新 读取 方法 装置 设备 存储 介质 | ||
本发明实施例公开了一种数据更新、读取方法、装置、设备及存储介质。该方法包括:写线程确定读指针当前指向的第一数据块和未指向的第二数据块;写线程更新所述第二数据块中的数据,并修改读指针的当前指向为指向第二数据块;如果用于读取第一数据块的读线程的线程锁状态为非锁定,则写线程更新第一数据块中的数据。本发明实施例由于如果用于读取第一数据块的读线程的线程锁状态为非锁定,则说明已没有读线程对第一数据块进行读操作,在此情况下,写线程才对第一数据块进行更新操作,从而避免双缓冲中所存在的读写冲突,进而提高了程序运行性能。
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种数据更新、读取方法、装置、设备及存储介质。
背景技术
在计算机设备中的程序运行过程中,经常遇到并发读写数据的情况,其中,读数据指的是读线程所进行的读操作,写数据指的写线程所进行的写操作(即更新操作),并发读写数据指的是对同一个数据块同时进行读操作和写操作。在并发读写数据时,为了保证正常读写数据,现有技术中通常采用双缓冲的方式进行处理,具体的:双缓冲中存在两个数据块,读线程加载一个公共的读指针,读指针是指向当前正在读取的数据块的指针变量,每个读线程在对数据块进行读操作时,将根据读指针的指向,读取读指针所指向的数据块中的数据。写线程在对数据块进行更新操作时,获取读指针,根据读指针的指向,更新读指针未指向的数据块中的数据,即对当前未读取的数据块进行更新操作,在完成对当前未读取的数据块中的数据的更新后,将读指针由指向当前正在读取的数据块变更为指向更新后的当前未读取的数据块,便对当前正在读取的数据块进行更新操作,至此完成对双缓冲中两个数据块的更新操作。
在上述过程中,写线程在完成对当前未读取的数据块的更新操作后,由于其难以准确判断全部读线程何时完成对当前正在读取的数据块所进行的读操作,为了避免出现读写冲突,通常采用延时更新的方式,具体的:设置延迟时长阈值,在将读指针由指向当前正在读取的数据块变更为指向更新后的当前未读取的数据块后,并不是立即对当前正在读取的数据块进行更新操作,而是在达到延迟时长阈值后,对当前正在读取的数据块进行更新操作。
然而,现有技术中至少存在如下问题:采用延时更新的方式仍然可能出现读写冲突,其原因在于:在延迟时长阈值内没有读线程对当前正在读取的数据块进行读操作,而在写线程对当前正在读取的数据块进行更新操作时,由于读线程获取到的读指针指向的仍是当前正在读取的数据块,因此,该读线程对数据块进行的读操作中所述的数据块正是当前正在读取的数据块,从而导致读写冲突。因此,延迟更新的方式无法从根本上避免读写冲突。
发明内容
本发明实施例提供一种数据更新、读取方法、装置、设备及存储介质,以避免读写冲突,提高程序运行性能。
第一方面,本发明实施例提供了一种数据更新方法,该方法包括:
写线程确定读指针当前指向的第一数据块和未指向的第二数据块;
所述写线程更新所述第二数据块中的数据,并修改所述读指针的当前指向为指向所述第二数据块;
如果用于读取第一数据块的读线程的线程锁状态为非锁定,则所述写线程更新所述第一数据块中的数据。
第二方面,本发明实施例还提供了一种数据读取方法,该方法包括:
读线程将线程锁状态设置为锁定;
所述读线程读取读指针所指向的数据块中的数据;
数据读取完毕,所述读线程将线程锁状态修改为非锁定。
第三方面,本发明实施例还提供了一种数据更新装置,该装置包括:
读指针指向确定模块,用于写线程确定读指针当前指向的第一数据块和未指向的第二数据块;
第二数据块更新模块,用于所述写线程更新所述第二数据块中的数据,并修改所述读指针的当前指向为指向所述第二数据块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州市百果园信息技术有限公司,未经广州市百果园信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910256706.7/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置