[发明专利]对资源限制访问的方法、装置及终端设备在审
申请号: | 201810251731.1 | 申请日: | 2018-03-26 |
公开(公告)号: | CN108446181A | 公开(公告)日: | 2018-08-24 |
发明(设计)人: | 杨亮;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/52 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 吴迪 |
地址: | 430000 湖北省武汉市东湖新技术*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计数变量 预设 自旋 终端设备 资源限制 访问 加锁 解锁 线程 调用 互联网技术 调用系统 函数检测 使用系统 系统资源 线程调用 运行效率 阈值配置 读写 占用 节约 配置 | ||
1.一种对资源限制访问的方法,其特征在于,所述方法通过定义的自旋锁限制多个线程对资源的同时访问,所述自旋锁包括锁计数变量、加锁函数以及解锁函数,
当前线程调用所述加锁函数中的指定函数检测所述锁计数变量是否为预设初值;
若所述锁计数变量为预设初值,则将所述锁计数变量配置为预设阈值,以供当前线程占用所述自旋锁对所述资源进行访问;
当所述当前线程访问完所述资源后,调用所述解锁函数将所述锁计数变量由所述预设阈值配置为所述预设初值,以供其他线程调用所述自旋锁。
2.如权利要求1所述的方法,其特征在于,所述当前线程调用所述加锁函数中的指定函数检测所述锁计数变量是否为预设初值的步骤包括:
当前线程调用所述加锁函数中的由操作系统提供的原子性操作函数检测所述锁计数变量是否为预设初值。
3.如权利要求2所述的方法,其特征在于,所述当前线程调用所述加锁函数中的由操作系统提供的原子性操作函数检测所述锁计数变量是否为预设初值的步骤包括:
定义所述由操作系统提供的原子性操作函数的参数,所述参数分别为锁计数变量、第一参数和第二参数;
若所述锁计数变量与所述第二参数相等,则所述锁计数变量为预设初值。
4.如权利要求1所述的方法,其特征在于,所述当前线程调用所述加锁函数中的指定函数检测所述锁计数变量是否为预设初值的步骤包括:
所述当前线程调用所述加锁函数中的由C++11提供的原子性操作函数检测所述锁计数变量是否为预设初值。
5.如权利要求4所述的方法,其特征在于,所述当前线程调用所述加锁函数中的由C++11提供的原子性操作函数检测所述锁计数变量是否为预设初值的步骤包括:
定义所述由C++11提供的原子性操作函数的参数,所述参数包括第一参数和第二参数;
若所述锁计数变量与所述第一参数相等,则所述锁计数变量为预设初值。
6.一种对资源限制访问的装置,其特征在于,所述装置通过定义的自旋锁限制多个线程对资源的同时访问,所述自旋锁包括锁计数变量、加锁函数以及解锁函数,
检测模块,用于当前线程调用所述加锁函数中的指定函数检测所述锁计数变量是否为预设初值;
第一配置模块,用于若所述锁计数变量为预设初值,则将所述锁计数变量配置为预设阈值,以供当前线程占用所述自旋锁对所述资源进行访问;
第二配置模块,用于当所述当前线程访问完所述资源后,调用所述解锁函数将所述锁计数变量由所述预设阈值配置为所述预设初值,以供其他线程调用所述自旋锁。
7.如权利要求6所述的装置,其特征在于,所述检测模块还用于:当前线程调用所述加锁函数中的由操作系统提供的原子性操作函数检测所述锁计数变量是否为预设初值。
8.如权利要求7所述的装置,其特征在于,所述检测模块还用于:定义所述由操作系统提供的原子性操作函数的参数,所述参数分别为锁计数变量、第一参数和第二参数;
若所述锁计数变量与所述第二参数相等,则所述锁计数变量为预设初值。
9.如权利要求6所述的装置,其特征在于,所述检测模块还用于:所述当前线程调用所述加锁函数中的由C++11提供的原子性操作函数检测所述锁计数变量是否为预设初值。
10.一种终端设备,其特征在于,所述终端设备包括存储器和处理器,所述存储器用于存储计算机程序代码,所述处理器用于执行存储于所述存储器中的计算机程序代码以实现如权利要求1-5任一一项所述的对资源限制访问的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810251731.1/1.html,转载请声明来源钻瓜专利网。