[发明专利]一种获取自旋锁的方法及装置有效
申请号: | 201410109467.X | 申请日: | 2014-03-21 |
公开(公告)号: | CN104932933B | 公开(公告)日: | 2018-11-13 |
发明(设计)人: | 张文涛;徐彩虹;赵家伟 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 获取 自旋 方法 装置 | ||
1.一种获取自旋锁的方法,其特征在于,包括:
接收请求获取自旋锁的任务;
将所述任务保存在排队队列中;
根据所述任务在所述排队队列中的位置,确定所述任务的自旋等待时间,以使得所述任务在所述自旋等待时间结束时,尝试获取所述自旋锁;
其中,所述任务在所述排队队列中的位置用于表征所述任务保存至所述排队队列中的先后顺序,先保存至所述排队队列中的任务的位置在后保存至所述排队队列中的任务的位置之前。
2.根据权利要求1所述的获取自旋锁的方法,其特征在于,所述方法还包括:
根据预设检测周期,周期性的检测所述任务的自旋等待时间是否结束。
3.根据权利要求1或2所述的获取自旋锁的方法,其特征在于,当所述任务在所述自旋等待时间结束时,尝试获取所述自旋锁之后,所述方法还包括:
若所述任务获取所述自旋锁失败,则重新确定所述任务在所述排队队列中的位置;
根据重新确定的所述任务在所述排队队列中的位置,重新确定所述任务的自旋等待时间,以使得所述任务在重新确定的所述自旋等待时间结束时,重新尝试获取所述自旋锁。
4.根据权利要求1或2所述的获取自旋锁的方法,其特征在于,所述方法还包括:
当位于所述排队队列首部的任务释放所述自旋锁时,更新所述任务在所述排队队列中的位置。
5.根据权利要求4所述的获取自旋锁的方法,其特征在于,所述当位于所述排队队列首部的任务释放所述自旋锁时,更新所述任务在所述排队队列中的位置,具体包括:
当位于所述排队队列首部的任务释放所述自旋锁时,将所述任务在所述排队队列中的位置更新为所述任务的前一个任务在所述排队队列中的位置。
6.根据权利要求1所述的获取自旋锁的方法,其特征在于,所述将所述任务保存在排队队列中,具体包括:
将所述任务添加至所述排队队列的尾部。
7.一种服务器,其特征在于,包括:
接收单元,用于接收请求获取自旋锁的任务;
保存单元,用于将所述接收单元接收的所述任务保存在排队队列中;
确定单元,用于根据所述保存单元保存的所述任务在所述排队队列中的位置,确定所述任务的自旋等待时间,以使得所述任务在所述自旋等待时间结束时,尝试获取所述自旋锁,其中,所述任务在所述排队队列中的位置用于表征所述任务保存至所述排队队列中的先后顺序,先保存至所述排队队列中的任务的位置在后保存至所述排队队列中的任务的位置之前。
8.根据权利要求7所述的服务器,其特征在于,所述服务器还包括检测单元,
所述检测单元,用于根据预设检测周期,周期性的检测所述确定单元确定的所述任务的自旋等待时间是否结束。
9.根据权利要求7或8所述的服务器,其特征在于,
所述确定单元,还用于当所述任务在所述自旋等待时间结束时,尝试获取所述自旋锁之后,若所述任务获取所述自旋锁失败,则重新确定所述任务在所述排队队列中的位置,并根据重新确定的所述任务在所述排队队列中的位置,重新确定所述任务的自旋等待时间,以使得所述任务在重新确定的所述自旋等待时间结束时,重新尝试获取所述自旋锁。
10.根据权利要求7或8所述的服务器,其特征在于,所述服务器还包括更新单元,
所述更新单元,用于当位于所述排队队列首部的任务释放所述自旋锁时,更新所述保存单元保存的所述任务在所述排队队列中的位置。
11.根据权利要求10所述的服务器,其特征在于,
所述更新单元,具体用于当位于所述排队队列首部的任务释放所述自旋锁时,将所述任务在所述排队队列中的位置更新为所述任务的前一个任务在所述排队队列中的位置。
12.根据权利要求7所述的服务器,其特征在于,
所述保存单元,具体用于将所述接收单元接收的所述任务添加至所述排队队列的尾部。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410109467.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:缓冲资源的分配方法和装置
- 下一篇:一种更新桌面的方法、服务器和移动终端