[发明专利]对象更新、读取方法及装置有效
申请号: | 202111358395.9 | 申请日: | 2021-11-17 |
公开(公告)号: | CN113791916B | 公开(公告)日: | 2022-02-08 |
发明(设计)人: | 洪春涛 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京亿腾知识产权代理事务所(普通合伙) 11309 | 代理人: | 张明;周良玉 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 对象 更新 读取 方法 装置 | ||
本说明书实施例提供一种对象更新、读取方法及装置,在对象更新方法中,任意的第一CPU核的第一线程请求获取写锁,该写锁用于表示对第一对象执行更新的权限。读取第一指针,该第一指针指向第一对象。根据第一指针,读取第一对象并复制,得到第二对象。对第二对象的内容进行调整,得到调整后的第二对象。修改第一指针,以使其指向调整后的第二对象。释放写锁。
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种对象更新、读取方法及装置。
背景技术
多核处理系统能够在单位时间内处理更多的任务,处理能力更强,应用也越发广泛。在利用多核处理系统运行多线程任务时,该多个线程之间可以具有都能够操作的共享对象。并且,在更新所述的共享对象时,同一时刻只能有一个线程更新,以避免线程冲突导致数据错误。当前技术中,各个线程之间可以申请锁(Lock),成功获取到锁的线程可以操作该共享对象,未获取到锁的线程只能等待。需要说明,这里的锁通常为全局变量,从而线程申请锁的过程中通常需要进行跨CPU核通信。
发明内容
本说明书一个或多个实施例描述了一种对象更新、读取方法及装置,可以确保针对原对象的读取操作的安全性。
第一方面,提供了一种对象更新方法,包括:
任意的第一CPU核的第一线程请求获取写锁;所述写锁用于表示对所述第一对象执行更新的权限;
读取第一指针,所述第一指针指向所述第一对象;
根据所述第一指针,读取所述第一对象并复制,得到第二对象;
对所述第二对象的内容进行调整,得到调整后的第二对象;
修改所述第一指针,以使其指向所述调整后的第二对象;
释放所述写锁。
第二方面,提供了一种对象读取方法,包括:
任意的第一CPU核的第一线程读取第一指针,所述第一指针指向所述第一对象;所述第一对象具有对应的第一标志位数组,其中的每个标志位对应于一个线程;
根据所述第一指针,读取所述第一标志位数组中对应于所述第一线程的第一标志位;
将所述第一标志位的取值修改为预定值;所述预定值指示所述第一线程正在访问所述第一对象;
读取所述第一对象;
在读取所述第一对象后,将所述第一标志位的取值恢复为初始值。
第三方面,提供了一种对象更新装置,包括:
获取单元,用于请求获取写锁;所述写锁用于表示对所述第一对象执行更新的权限;
读取单元,用于读取第一指针,所述第一指针指向所述第一对象;
复制单元,用于根据所述第一指针,读取所述第一对象并复制,得到第二对象;
调整单元,用于对所述第二对象的内容进行调整,得到调整后的第二对象;
修改单元,用于修改所述第一指针,以使其指向所述调整后的第二对象;
释放单元,用于释放所述写锁。
第四方面,提供了一种对象读取装置,包括:
读取单元,用于读取第一指针,所述第一指针指向所述第一对象;所述第一对象具有对应的第一标志位数组,其中的每个标志位对应于一个线程;
所述读取单元,还用于根据所述第一指针,读取所述第一标志位数组中对应于所述第一线程的第一标志位;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111358395.9/2.html,转载请声明来源钻瓜专利网。