[发明专利]一种线程访问临界区的方法、系统和终端设备有效
申请号: | 201210121183.3 | 申请日: | 2012-04-23 |
公开(公告)号: | CN102662747A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 刘骁 | 申请(专利权)人: | 深圳市融创天下科技股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518057 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 线程 访问 临界 方法 系统 终端设备 | ||
1.一种线程访问临界区的方法,其特征在于,所述方法包括步骤:
创建线程互斥锁变量;
创建所述线程互斥锁变量的状态值;
初始化所述线程互斥锁变量为状态值;
获取线程的访问方式;
判断所述线程互斥锁变量中的当前值是否等于所述状态值,若是则允许所述线程以所述访问方式访问临界区,并根据所述访问方式修改所述线程互斥锁变量中的当前值。
2.根据权利要求1所述的线程访问临界区的方法,其特征在于,所述状态值包括空闲状态值、读状态值、写状态值;
所述访问方式包括读访问方式和写访问方式;
所述步骤“获取线程的访问方式”为获取线程的读访问方式;
所述步骤“判断所述线程互斥锁变量中的当前值是否等于所述状态值,若是则允许所述线程以所述访问方式访问临界区,并根据所述访问方式修改所述线程互斥锁变量中的当前值”具体为:
判断所述线程互斥锁变量中的当前值是否等于读状态值或者空闲状态值,若是则允许所述线程读所述临界区;
根据所述读访问方式将所述线程互斥锁变量中的当前值减1。
3.根据权利要求2所述的线程访问临界区的方法,其特征在于,所述步骤“根据所述读访问方式将所述线程互斥锁变量中的当前值减1”之后还包括:
当所述线程读所述临界区结束后,将所述线程互斥锁变量中的当前值加1。
4.根据权利要求1所述的线程访问临界区的方法,其特征在于,所述状态值包括空闲状态值、读状态值、写状态值;
所述访问方式包括读访问方式和写访问方式;
所述步骤“获取线程的访问方式”为获取线程的写访问方式;
所述步骤“判断所述线程互斥锁变量中的当前值是否等于所述状态值,若是则允许所述线程以所述访问方式访问临界区,并根据所述访问方式修改所述线程互斥锁变量中的当前值”具体为:
判断所述线程互斥锁变量中的当前值是否等于空闲状态值,若是则允许所述线程写所述临界区;
根据所述写访问方式修改所述线程互斥锁变量中的当前值为写状态值。
5.根据权利要求4所述的线程访问临界区的方法,其特征在于,所述步骤“根据所述写访问方式修改所述线程互斥锁变量中的当前值为写状态值”之后还包括步骤:
当所述线程写所述临界区结束后,修改所述线程互斥锁变量中的当前值为空闲状态值。
6.一种线程访问临界区的系统,其特征在于,所述系统包括第一创建模块、第二创建模块、初始模块、获取模块、判断模块、访问模块和修改模块;
所述第一创建模块,与所述第二创建模块、初始模块、判断模块和修改模块相连,用于创建线程互斥锁变量;
所述第二创建模块,与所述第一创建模块和初始模块相连,用于创建所述线程互斥锁变量的状态值;
所述初始模块,与所述第一创建模块、第二创建模块和获取模块相连,用于初始化所述线程互斥锁变量为状态值,并发送获取指令到所述获取模块;
所述获取模块,与所述初始模块和判断模块相连,用于接收所述初始模块发送的获取指令,并获取线程的访问方式,同时发送判断指令到所述判断模块;
所述判断模块,与所述获取模块、第一创建模块、访问模块和修改模块相连,用于接收所述获取模块发送的判断指令,并判断所述线程互斥锁变量中的当前值是否等于所述状态值,若是则发送访问指令到所述访问模块,并发送修改指令到所述修改模块;
所述访问模块,与所述判断模块相连,用于接收所述判断模块发送的访问指令,并允许所述线程以所述访问方式访问临界区;
所述修改模块,与所述判断模块和第一创建模块相连,用于接收所述判断模块发送的修改指令,并根据所述修改指令修改所述线程互斥锁变量中的当前值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市融创天下科技股份有限公司,未经深圳市融创天下科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210121183.3/1.html,转载请声明来源钻瓜专利网。