[发明专利]多线程访问方法及装置有效
申请号: | 201810326777.5 | 申请日: | 2018-04-12 |
公开(公告)号: | CN108762940B | 公开(公告)日: | 2020-09-04 |
发明(设计)人: | 杨亮;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多线程 访问 方法 装置 | ||
1.一种多线程访问方法,其特征在于,所述方法包括:
响应于线程对函数对象的访问,调用全局锁的全局临界区对象对全局键值对表进行加锁,所述全局键值对表包括锁对象和与其对应的键值之间的对应关系;
创建锁对象,为创建的锁对象生成用于记录锁对象引用次数的引用计数器,并将创建的锁对象以及所述锁对象与指定的键值之间的对应关系添加到所述全局键值对表;
调用所述全局临界区对象对所述全局键值对表进行解锁;
当所述线程调用所述全局锁加锁时,将创建的锁对象的键值作为加锁时的键值,调用所述全局临界区对象对全局键值对表进行加锁;
根据加锁时的键值查找所述全局键值对表,以获取与该键值对应的锁对象,并对获取到的锁对象对应的引用次数进行更新;
调用所述全局临界区对象对所述全局键值对表进行解锁;
调用获取到的锁对象为所述线程访问的函数对象进行加锁。
2.根据权利要求1所述的方法,其特征在于,在所述线程完成对所述函数对象的访问后,所述方法还包括:
当所述线程调用所述全局锁解锁时,将创建的锁对象的键值作为解锁时的键值,调用所述全局临界区对象对所述全局键值对表进行加锁;
根据解锁时的键值查找所述全局键值对表,以获取与该键值对应的锁对象;
调用获取到的锁对象对所述线程访问的函数对象进行解锁,并对获取到的锁对象对应的引用次数进行更新;
根据更新后的引用次数判定所述锁对象是否存在线程调用,若所述锁对象不存在线程调用,则释放所述锁对象;
调用所述全局临界区对象对所述全局键值对表进行解锁。
3.根据权利要求2所述的方法,其特征在于,当调用获取到的锁对象为所述线程访问的函数对象进行加锁时,所述对获取到的锁对象对应的引用次数进行更新,包括:对获取到的锁对象对应的引用次数加一;
当调用获取到的锁对象对所述线程访问的函数对象进行解锁时,所述对获取到的锁对象对应的引用次数进行更新,包括:对获取到的锁对象对应的引用次数减一。
4.根据权利要求2所述的方法,其特征在于,在所述释放所述锁对象之后,所述方法还包括:
从所述全局键值对表中移除所述锁对象以及所述锁对象和与其对应的键值之间的对应关系。
5.一种多线程访问装置,其特征在于,所述装置包括:
第一加锁模块,用于响应于线程对函数对象的访问,调用全局锁的全局临界区对象对全局键值对表进行加锁,所述全局键值对表包括锁对象和与其对应的键值之间的对应关系;
配置模块,用于创建锁对象,为创建的锁对象生成用于记录锁对象引用次数的引用计数器,并将创建的锁对象以及所述锁对象与指定的键值之间的对应关系添加到所述全局键值对表;
第一解锁模块,用于调用所述全局临界区对象对所述全局键值对表进行解锁;
第一加锁模块,还用于当所述线程调用所述全局锁加锁时,将创建的锁对象的键值作为加锁时的键值,调用所述全局临界区对象对全局键值对表进行加锁;
查找模块,用于根据加锁时的键值查找所述全局键值对表,以获取与该键值对应的锁对象,并对获取到的锁对象对应的引用次数进行更新;
第一解锁模块,还用于调用所述全局临界区对象对所述全局键值对表进行解锁;
第二加锁模块,用于调用获取到的锁对象为所述线程访问的函数对象进行加锁。
6.根据权利要求5所述的装置,其特征在于,所述第一加锁模块,还用于在所述线程完成对所述函数对象的访问后,当所述线程调用所述全局锁解锁时,将创建的锁对象的键值作为解锁时的键值,调用所述全局临界区对象对所述全局键值对表进行加锁;
所述查找模块,还用于根据解锁时的键值查找所述全局键值对表,以获取与该键值对应的锁对象;
所述装置还包括:
第二解锁模块,用于调用获取到的锁对象对所述线程访问的函数对象进行解锁,并对获取到的锁对象对应的引用次数进行更新;
所述配置模块,还用于根据更新后的引用次数判定所述锁对象是否存在线程调用,若所述锁对象不存在线程调用,则释放所述锁对象;
所述第一解锁模块,还用于调用所述全局临界区对象对所述全局键值对表进行解锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810326777.5/1.html,转载请声明来源钻瓜专利网。