[发明专利]临界区的控制方法及装置有效
申请号: | 201711376986.2 | 申请日: | 2017-12-19 |
公开(公告)号: | CN107967181B | 公开(公告)日: | 2021-11-16 |
发明(设计)人: | 周应超;张震 | 申请(专利权)人: | 北京小米移动软件有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
地址: | 100085 北京市海淀区清河*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 临界 控制 方法 装置 | ||
1.一种临界区的控制方法,其特征在于,所述方法包括:
获取进入目标临界区的线程的持锁时间;所述目标临界区为临界区中满足预设条件的临界区;所述预设条件包括临界区被访问的频率;所述持锁时间是从锁信息中提取得到的,所述锁信息是从所述线程的堆栈数据中获取得到的;
确定所述线程是否为目标线程,所述目标线程为持锁时间超过预定时长且满足解锁条件的线程,如果是,则发送通知,以使根据所述通知控制所述目标线程释放锁。
2.如权利要求1所述的临界区的控制方法,其特征在于,所述获取进入目标临界区的线程的持锁时间,包括:
获取进入临界区的线程的持锁时间;
从所述持锁时间中选取临界区为目标临界区的持锁时间。
3.如权利要求1所述的临界区的控制方法,其特征在于,获取进入目标临界区的线程的持锁时间,包括:
确定所述线程进入的临界区是否为目标临界区;如果是,则获取所述线程的持锁时间,如果不是,则不获取所述线程的持锁时间。
4.如权利要求2或3所述的临界区的控制方法,其特征在于,所述持锁时间的获取步骤包括:
启动目标服务并从目标服务获取所述线程的持锁时间,所述目标服务用于定时获取所述线程的持锁时间。
5.如权利要求1所述的临界区的控制方法,其特征在于,所述方法还包括:
查找带有预设标签的临界区;
根据所述预设标签确定所述目标临界区。
6.如权利要求1所述的临界区的控制方法,其特征在于,所述方法还包括:
将临界区与数据库中记录的目标临界区进行匹配,将与所记录的目标临界区匹配的临界区确定为目标临界区。
7.如权利要求1所述的临界区的控制方法,其特征在于,所述发送通知,以使根据所述通知控制所述目标线程释放锁,包括:
向锁管理服务发送通知,以使在接收到所述目标线程的锁请求时,所述锁管理服务通过返回请求失败信息控制所述目标线程释放锁。
8.如权利要求1所述的临界区的控制方法,其特征在于,所述发送通知,以使根据所述通知控制所述目标线程释放锁,包括:
向锁管理服务发送通知,以使在未满足挂起条件时,锁管理服务通过不处理所述目标线程的锁请求控制所述目标线程释放锁;
其中,所述挂起条件包括以下至少一种:
接收到所述锁请求的时长达到预定值;
没有其他线程等待进入所述锁请求对应的目标临界区。
9.如权利要求1所述的临界区的控制方法,其特征在于,所述发送通知,以使根据所述通知控制所述目标线程释放锁,包括:
向操作系统发送通知,以使操作系统在满足预设重启条件时通过重启控制所述目标线程释放锁;
其中,所述预设重启条件包括以下至少一种:
锁管理服务无法对所述目标线程的锁请求返回请求失败信息;
所述目标线程释放锁后在预设时间段内再次持有锁,且持锁时间超过阈值时间。
10.一种临界区的控制装置,其特征在于,所述装置包括:
获取单元,用于获取进入目标临界区的线程的持锁时间;所述目标临界区为临界区中满足预设条件的临界区;所述预设条件包括临界区被访问的频率;所述持锁时间是从锁信息中提取得到的,所述锁信息是从所述线程的堆栈数据中获取得到的;
控制单元,用于确定所述线程是否为目标线程,所述目标线程为持锁时间超过预定时长且满足解锁条件的线程,如果是,则发送通知,以使根据所述通知控制所述目标线程释放锁。
11.如权利要求10所述的临界区的控制装置,其特征在于,所述获取单元,还用于获取进入临界区的线程的持锁时间;及
从所述持锁时间中选取临界区为目标临界区的持锁时间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京小米移动软件有限公司,未经北京小米移动软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711376986.2/1.html,转载请声明来源钻瓜专利网。