[发明专利]一种数据处理方法、装置、设备及介质有效
申请号: | 201911043428.3 | 申请日: | 2019-10-30 |
公开(公告)号: | CN110781016B | 公开(公告)日: | 2021-04-23 |
发明(设计)人: | 马凌;何昌华 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/48 |
代理公司: | 北京晋德允升知识产权代理有限公司 11623 | 代理人: | 刘立升 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 装置 设备 介质 | ||
本说明书实施例公开了一种数据处理方法、装置、设备及介质,数据处理方法包括:接收到待获锁线程的获锁请求时,通过处理器的共享缓存进行锁数据和待获锁线程的线程数据的交互,根据所述锁数据确定锁是否被占用;若否,则使所述待获锁线程获得锁;若是,则当占锁线程的目标线程数据满足预设条件时,使所述待获锁线程获得锁;和/或,接收到占锁线程的解锁请求时,确定所述占锁线程占锁前通过处理器的共享缓存与锁进行数据交互时,写入到所述共享缓存中的线程数据是否被更改;若被更改,则更改所述占锁线程的线程数据,使所述占锁线程解锁。
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及介质。
背景技术
现有技术中,内存采用了锁机制来控制线程的访问,例如MCS锁,且线程在获取锁时,需要与锁进行数据交换,例如需要交换pending值。现有的锁机制,线程在与锁进行数据交换时,需要先确定需要进行交换的锁数据位于哪一级缓存,例如L1(第一级缓存)、L2(第二级缓存),然后才能去相应的缓存进行数据交换。另外,在前一线程要解锁时,需要等待自身的“指针”数据(info.next数据)被下一线程填入,然后将所述下一线程的pending值进行更改,这样前一线程才可以解锁,也即下一线程才可以获得锁,从而前后两个线程被捆绑在一起,相互影响;其中一个线程出错则会影响另一个线程的获锁或解锁。由此可见,现有的锁机制过程繁杂,运行效率低,进而临界区的执行效率低,冲突更大(即线程花费时间更久)。另外,现有的一些技术,例如RTM(Restricted Transactional Memory),可以帮助优化关键区域的性能,但是其仅仅是减少临界区域的粒度,在产生冲突的时候会产生更多延迟,同时实现难度较大。
有鉴于此,需要更有效和更高效的锁机制控制方案。
发明内容
本说明书实施例提供一种数据处理方法、装置、设备及介质,用以解决如何更有效和更高效地进行锁机制控制的技术问题。
为解决上述技术问题,本说明书实施例是这样实现的:
本说明书实施例提供一种数据处理方法,包括:
接收到待获锁线程的获锁请求时,通过处理器的共享缓存进行锁数据和待获锁线程的线程数据的交互,根据所述锁数据确定锁是否被占用;
若否,则使所述待获锁线程获得锁;
若是,则当占锁线程的目标线程数据满足预设条件时,使所述待获锁线程获得锁;
和/或,
接收到占锁线程的解锁请求时,确定所述占锁线程占锁前通过处理器的共享缓存与锁进行数据交互时,写入到所述共享缓存中的线程数据是否被更改;
若被更改,则更改所述占锁线程的线程数据,使所述占锁线程解锁。
本说明书实施例提供一种数据处理方法,包括:
接收到第一线程的获锁请求时,根据锁的与所述第一线程的第一数据对应的数据确定锁是否被占用,并将所述第一数据写入处理器的共享缓存中所述锁的缓存行;
若否,则使所述第一线程获取锁;
若是,则当占锁线程的目标线程数据满足预设条件时,使所述第一线程获取锁;
接收到所述第一线程的解锁请求时,确定所述共享缓存中是否存在所述第一数据;
若不存在,则更改所述第一线程的所述第一数据,使所述第一线程解锁;
若存在,则更改共享缓存中的所述第一数据,使所述第一线程解锁。
本说明书实施例提供一种数据处理装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911043428.3/2.html,转载请声明来源钻瓜专利网。