多用户进程互斥方法及装置制造方法及图纸

技术编号:15541262 阅读:83 留言:0更新日期:2017-06-05 10:45
本发明专利技术涉及一种多用户进程互斥方法及装置,多用户进程互斥方法,包括以下步骤:在进程实例启动时,若检测到当前本地进程中无具名互斥锁,读取应用程序配置文件中的启动项配置信息;获取启动项配置信息中的启动项配置逻辑值;根据启动项配置逻辑值,判断当前本地进程中是否存在多用户运行;在判断的结果为否时,运行进程实例。本发明专利技术能够解决传统进程互斥锁无法满足多用户情况下的进程互斥的问题;通过本发明专利技术,可以有效的解决应用程序退出时可能会非正常退出或同一台电脑上也可能存在不同的程序,拥有相同的进程名等情况对多用户进程互斥方案的干扰。

Multi user process mutual exclusion method and device

The present invention relates to a device and a method of multi user process mutual exclusion, mutual exclusion method for multi user process, which comprises the following steps: in the process of instance startup, if detected no named mutex the local process, start to read configuration information in the application configuration file; obtaining the boot configuration logic start configuration information the value of; according to the starting configuration of a logical value to judge whether there is multiple users running the current local process; in the judgment result is negative when the running process instance. The invention can solve the traditional process mutex cannot satisfy the multiuser scenario process mutex problem; the invention can may be non normal exit or the same computer may have different procedures to effectively solve the application exits, with Cheng Ming the same interference in multi-user mutual exclusion scheme the.

【技术实现步骤摘要】
多用户进程互斥方法及装置
本专利技术涉及计算机
,特别是涉及一种多用户进程互斥方法及装置。
技术介绍
大多数应用软件(ApplicationSoftware)不支持多用户运行,例如在端口绑定、需要使用临界资源的情况下,应用软件如果绑定了固定端口,当多个用户运行该应用软件的程序,就会反复绑定这个端口,第一个绑定会成功,其后的绑定都会失败。临界资源有可能被第一个用户占用,其他用户则无法使用。此时如果用户运行该应用软件的程序,软件会出现端口绑定失败导致的通信失败的现象;同时临界资源被占用会导致应用软件出现死锁、初始化失败等异常现象。为了应对上述现象,目前传统的解决方案是采用互斥锁。但在实现过程中,专利技术人发现传统技术至少存在如下问题:由于系互斥锁必须要管理员权限,普通权限用户无法检测到互斥锁,进而也无法实现多用户进程互斥。即互斥锁存在不适用于普通权限用户的缺陷。
技术实现思路
基于此,有必要针对由于传统互斥锁不适用于普通权限用户,导致普通权限用户无法实现多用户进程互斥的问题,提供一种多用户进程互斥方法及装置。为了实现上述目的,本专利技术技术方案的实施例为:一方面,提供了一种多用户进程互斥方法,包括以下步骤:在进程实例启动时,若检测到当前本地进程中无具名互斥锁,读取应用程序配置文件中的启动项配置信息;获取启动项配置信息中的启动项配置逻辑值;根据启动项配置逻辑值,判断当前本地进程中是否存在多用户运行;在判断的结果为否时,运行进程实例。另一方面,提供了一种多用户进程互斥装置,包括:读取检测单元,用于在进程实例启动时,若检测到当前本地进程中无具名互斥锁,读取应用程序配置文件中的启动项配置信息;逻辑值获取单元,用于获取启动项配置信息中的启动项配置逻辑值;判断单元,用于根据启动项配置逻辑值,判断当前本地进程中是否存在多用户运行;运行单元,用于在判断的结果为否时,运行进程实例。上述技术方案具有如下有益效果:本专利技术多用户进程互斥方法及装置,在采用互斥锁的基础上,通过记录配置文件和进程检测双重机制,来检测出应用程序是否处于多用户运行状态,进而实现多用户进程互斥,可以解决非系统管理员权限下的多用户进程互斥,防止因设置配置文件有可能写入出错出现的问题。本专利技术能够解决传统进程互斥锁无法满足多用户情况下的进程互斥的问题;通过本专利技术,可以有效的解决应用程序退出时可能会非正常退出或同一台电脑上也可能存在不同的程序,拥有相同的进程名等情况对多用户进程互斥方案的干扰。附图说明图1为本专利技术多用户进程互斥方法实施例1的流程示意图;图2为本专利技术多用户进程互斥方法实施例2的流程示意图;图3为本专利技术多用户进程互斥装置实施例1的结构示意图。具体实施方式为了便于理解本专利技术,下面将参照相关附图对本专利技术进行更全面的描述。附图中给出了本专利技术的首选实施例。但是,本专利技术可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本专利技术的公开内容更加透彻全面。除非另有定义,本文所使用的所有的技术和科学术语与属于本专利技术的
的技术人员通常理解的含义相同。本文中在本专利技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本专利技术。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。本专利技术多用户进程互斥方法实施例1:为了解决由于传统互斥锁不适用于普通权限用户,导致普通权限用户无法实现多用户进程互斥的问题,本专利技术提供了一种多用户进程互斥方法实施例1;图1为本专利技术多用户进程互斥方法实施例1的流程示意图;如图1所示,可以包括以下步骤:步骤S110:在进程实例启动时,若检测到当前本地进程中无具名互斥锁,读取应用程序配置文件中的启动项配置信息;步骤S120:获取启动项配置信息中的启动项配置逻辑值;步骤S130:根据启动项配置逻辑值,判断当前本地进程中是否存在多用户运行;步骤S140:在判断的结果为否时,运行进程实例。具体而言,本专利技术可以在Windows系统或Linux系统下实现,同时,在更换相关程序函数后也可在其它类型的系统下实现。其中,具名互斥锁可以指应用软件通过相关程序函数生成的具有名字的互斥锁;本专利技术各实施例中提到的互斥锁即通用进程互斥锁,可以包括系统全局互斥锁(GlobalMutex);具名互斥锁能够保证在当前用户下同一时间最多运行一个实例,不具名的互斥锁是做不到这一点的。本专利技术各实施例中提到的进程(即当前本地进程)可以指应用程序的一个执行过程,而进程实例可以指一个运行的程序。本专利技术通过在进程实例启动时,若检测到当前本地进程中无具名互斥锁,来确认在当前用户下,本地进程中是否有正在运行的进程实例;若存在具名互斥锁,说明有进程实例正在运行,应用程序可以退出本次启动的进程实例。进一步的,在单用户情况下,本专利技术各实施例可以通过互斥锁(即上述具名互斥锁)来判断是否有实例正在运行;但是,在多用户情况下,互斥锁需要系统管理员权限,而普通用户没有权限,无法通过互斥锁来判断是否有进程实例正在运行。因此本专利技术实施例1通过步骤S120~S140的方法来判断当前本地进程中是否存在多用户运行。由于进程检测无法解决非系统管理员权限下的多用户进程互斥,而设置配置文件存在写入出错的问题,而本专利技术各实施例的方法提供了一种双重保障机制。在一个具体的实施例中,若检测到当前本地进程中无具名互斥锁的步骤之前包括步骤:调用创建互斥锁函数生成具名互斥锁,获取应用程序编程接口函数根据具名互斥锁反馈的返回值。若检测到当前本地进程中无具名互斥锁的步骤包括:在返回值为互斥锁已存在错误码时,确定当前本地进程中存在具名互斥锁。具体而言,以Windows系统为例,可以在进程实例启动时,调用系统API(ApplicationProgrammingInterface:应用程序编程接口)函数生成一个具有名字的互斥锁(即具名互斥锁),并检测返回值;如果返回值为ERROR_ALREADY_EXISTS(互斥锁已存在错误码),表明程序的另一个进程实例正在运行,程序该实例退出;否则,读取应用程序配置文件中的启动项配置信息。在一个具体的实施例中,根据启动项配置逻辑值,判断当前本地进程中是否存在多用户运行的步骤包括:在启动项配置逻辑值为False时,确定当前本地进程中不存在多用户运行;在启动项配置逻辑值为True时,扫描当前本地进程,获取本地进程快照;遍历本地进程快照,在遍历的结果为本地进程快照中不存在相同进程名时,确定当前本地进程中不存在多用户运行。具体而言,以Windows系统为例,可以从程序配置文件config.ini中读出Launch(启动)配置信息。并检测Launch配置为true或false;一般来说,Launch项的设置只可能是两个值true或者false,可以使用字符串匹配来进行判断如果Launch为false,说明没有程序不存在其他实例正在运行,即不存在多用户运行,可以运行本次的进程实例;如果Launch为true,可以调用系统API函数扫描本地进程,获取本地进程快照,同时遍历本地进程快照。通过遍历本地进程快照,可以判断是否存在多个相同进程名,如果存在多个相同进程名,表明程序的另一个进程实例正在运行,程序该实例退出;否则,表明程序不存在多用户运行实例。在一本文档来自技高网
...
多用户进程互斥方法及装置

【技术保护点】
一种多用户进程互斥方法,其特征在于,包括以下步骤:在进程实例启动时,若检测到当前本地进程中无具名互斥锁,读取应用程序配置文件中的启动项配置信息;获取所述启动项配置信息中的启动项配置逻辑值;根据所述启动项配置逻辑值,判断所述当前本地进程中是否存在多用户运行;在所述判断的结果为否时,运行所述进程实例。

【技术特征摘要】
2016.10.17 CN 20161090365631.一种多用户进程互斥方法,其特征在于,包括以下步骤:在进程实例启动时,若检测到当前本地进程中无具名互斥锁,读取应用程序配置文件中的启动项配置信息;获取所述启动项配置信息中的启动项配置逻辑值;根据所述启动项配置逻辑值,判断所述当前本地进程中是否存在多用户运行;在所述判断的结果为否时,运行所述进程实例。2.根据权利要求1所述的多用户进程互斥方法,其特征在于,在所述若检测到当前本地进程中无具名互斥锁的步骤之前包括步骤:调用创建互斥锁函数生成所述具名互斥锁,获取应用程序编程接口函数根据所述具名互斥锁反馈的返回值;所述若检测到当前本地进程中无具名互斥锁的步骤包括:在所述返回值为互斥锁已存在错误码时,确定所述当前本地进程中存在所述具名互斥锁。3.根据权利要求1所述的多用户进程互斥方法,其特征在于,根据所述启动项配置逻辑值,判断所述当前本地进程中是否存在多用户运行的步骤包括:在所述启动项配置逻辑值为False时,确定所述当前本地进程中不存在多用户运行;在所述启动项配置逻辑值为True时,扫描所述当前本地进程,获取本地进程快照;遍历所述本地进程快照,在所述遍历的结果为所述本地进程快照中不存在相同进程名时,确定所述当前本地进程中不存在多用户运行。4.根据权利要求1至3任意一项所述的多用户进程互斥方法,其特征在于,在所述判断的结果为否时,运行所述进程实例的步骤包括:将所述启动项配置逻辑值配置为True,运行所述进程实例。5.根据权利要求1至3任意一项所述的多用户进程互斥方法,其特征在于,在所述判...

【专利技术属性】
技术研发人员:李春
申请(专利权)人:广州视源电子科技股份有限公司广州视睿电子科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1