[发明专利]一种基于多平台的自动互斥量运行方法无效

专利信息
申请号: 201010156016.3 申请日: 2010-04-20
公开(公告)号: CN101840351A 公开(公告)日: 2010-09-22
发明(设计)人: 蒋宏敏 申请(专利权)人: 深圳市融创天下科技发展有限公司
主分类号: G06F9/46 分类号: G06F9/46
代理公司: 暂无信息 代理人: 暂无信息
地址: 518057 广东省深圳市南山区科技*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 平台 自动 互斥量 运行 方法
【说明书】:

技术领域

发明多线程的软件开发中多线程资源共享的互斥操作方法,具体涉及一种基于多平台的自动互斥量运行方法。

背景技术

在多线程的软件开发中,会使用到大量的线程共享资源,而对这些资源的访问需要对其进行加锁操作,也就是互斥操作。这就造成需要在代码内使用比较多的互斥量,而互斥量的使用过程中,又由于程序的条件判引起的多出口的问题,造成很容易程序出口处遗漏掉释放互斥量的操作,这种遗漏是比较致命的,若是大型的多线程服务器程序,遗漏之处比较隐秘,会造成程序运行中的死锁情况,而要排除此问题,将会耗费系统工程师大量的精力去进行排除。

在软件开发中,特别是多线程服务器软件的开发中需要大量使用到原子操作,原子操作的实现主要是依靠互斥量,信号量等内核对象的操作。而在不同平台的软件环境下的内核对象的操作也不相同。

由于代码的特性,原子操作的入口点只有一个,而出口点会由条件判断的原因,会有多个,在实际实现中,经常会有遗漏一个出口点,其所占用的互斥量没有被正确释放,造成互斥量的死锁,引起软件运行故障。

发明内容

本发明要解决的技术问题是在多线程的软件开发中,会使用到大量的线程共享资源,而对这些资源的访问需要对其进行加锁操作,也就是互斥操作让系统工程只需关注需要进入互斥量的区间,而不必关心由条件判断引起的多出口的问题。

为解决以上技术问题,本发明提供一种基于多平台的自动互斥量运行方法,利用C++对象的创建和销毁会调用构造函数和析构函数的特性,将进入互斥量的操作放在构造函数里,将退出互斥量的操作放在析构函数里,这样在创建自动互斥对象的时候会进行进锁操作,而在销毁自动互斥对象的时候会进行解锁操作。

优选地,具体步骤为:首先对系统平台进行互斥量封装,这个封装对象为CcoreMutex,并实现lock和unlock的功能接口,Lock为获得进入互斥量的接口,unlock为释放互斥量的接口,再实现一个CAutoCoreMutex的自动互斥量,构造参数中传入CcoreMutex的指针,检查指针有效性后进行lock操作,析构函数中对该指针进行unlock操作。

优选地,自动互斥量对象的构造函数中进行进入互斥量操作,在析构中进行退出互斥量操作,再利用临时变量的生存期,在一段要使用原子操作的代码开始处申明一个自动互斥对象后,这样在自动互斥对象的生存期到达后,该对象会被销毁,从而调用析构里释放互斥对象的操作。

优选地,首先分别对UINX系统,以及WIN32系统平台进行互斥量的封装。

优选地,由宏来区分UINX系统以及WIN32项操作系统平台。

该发明可以有效地解决释放互斥量的多出口点问题。减少原子操作的实现步骤,弱化原子操作实现的平台相关性。具体功能是自动对所要进行的代码区进行互斥操作,并能够在代码区结束后,进行自动释放。

附图说明

无附图。

具体实施方式

本发明方法针对该技术的多平台特性,所以,首先分别对UINX系统,以及WIN32系统进行互斥量的封装。假定这个封装对象为CcoreMutex。并实现lock和unlock的功能接口。Lock为获得进入互斥量的接口,unlock为释放互斥量的接口,再实现一个CAutoCoreMutex的自动互斥量,构造参数中传入CcoreMutex的指针,检查指针有效性后进行lock操作,析构函数中对该指针进行unlock操作。由Win32和Linux分别进行互斥量的封装,由宏来区分各项操作系统平台。

在自动互斥量对象的构造函数中进行进入互斥量操作,在析构中进行退出互斥量操作。再利用临时变量的生存期,在一段要使用原子操作的代码开始处申明一个自动互斥对象后,这样在自动互斥对象的生存期到达后,该对象会被销毁,从而调用析构里释放互斥对象的操作。

使用方式如下代码示例:

//定义一个互斥量对象。

CcoreMutex mutex;

{

   //构造自动互斥量对象,对自动进行锁操作

   CautoCoreMutex autolock(&mutex);

   需要进行原子操作的代码区

}

   //前面定义的自动互斥量的生存期到达,系统会对autolock进行销毁,会

调用析构函数,所以unlock会被执行。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市融创天下科技发展有限公司,未经深圳市融创天下科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010156016.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top