对共享资源的加锁、控制方法和装置的制作方法

文档序号:6384796阅读:164来源:国知局
专利名称:对共享资源的加锁、控制方法和装置的制作方法
技术领域
本发明涉及计算机应用领域,特别涉及一种对共享资源的加锁方法和装置,对共享资源的控制方法和装置。
背景技术
在计算机应用领域,在应用使用或操作共享资源的过程中,加锁机制是一种对共享资源的独占式控制方式,以保证在同一时间只有一个应用可以使用被锁定的共享资源。现有的加锁机制一般过程为在应用需要使用某一共享资源时,若该共享资源没有被锁定(即没有被其他应用使用),则锁定该共享资源,然后使用该共享资源,在应用使用完该共享资源后,解除对该共享资源的锁定;若该共享资源被锁定(即被其他应用使用)则等待直至该共享资源被解锁。然而,当有多个应用分别需要使用多个共享资源时,例如,应用Al和A2都需要使用共享资源Zl和Z2,如果应用Al先锁定共享资源Zl再锁定共享资源Z2,应用A2先锁定共享资源Z2再锁定共享资源Zl,当应用Al在锁定共享资源Z2时,共享资源Z2已被应用A2锁定,并且,当应用A2在锁定共享资源Zl时,共享资源Zl已被应用Al锁定,这种情况下,应用Al和A2均会处于等待状态,并且共享资源Zl和Z2也将一直处于锁定状态,也就是死锁状态,其他应用也不能使用共享资源Zl和Z2。由此可见,现有的加锁机制使得对共享资源的并发性控制的准确率和效率并不闻。

发明内容
本发明技术方案要解决是现有对共享资源的并发性操作的准确率和效率不高的问题。为解决上述问题,本发明技术方案提供一种对共享资源的加锁方法,包括接收对共享资源的控制指令;解析所述控制指令,获取多个需操作的共享资源;当所述多个需操作的共享资源都处于解锁状态,则锁定所有所述需操作的共享资源。可选的,所述对共享资源的加锁方法还包括当所述多个需操作的共享资源中有处于锁定状态的共享资源,则等待所述处于锁定状态的共享资源解锁后,锁定所有需操作的共享资源。可选的,当所述等待的时间超过预定时间,则确定对所述多个需操作的共享资源的加锁失败。可选的,所述对共享资源的加锁方法还包括预先配置资源池,所述资源池包括多个资源单元,分别用于存储所述共享资源。可选的,所述资源池具有矩阵型结构,锁定所有需操作的共享资源包括锁定存储所述需操作的共享资源的资源单元所在行的所有资源单元中的共享资源。可选的,所述资源池具有矩阵型结构,锁定所有需操作的共享资源包括锁定存储所述需操作的共享资源的资源单元所在列的所有资源单元中的共享资源。
为解决上述技术问题,本发明技术方案还提供一种对共享资源的控制方法,包括 所述的对共享资源的锁定方法;在所有所述需操作的共享资源被锁定后,执行所述控制指 令。
可选的,所述对共享资源的控制方法还包括在执行完所述控制指令后,对被锁定 的共享资源进行解锁。
为解决上述技术问题,本发明技术方案还提供一种对共享资源的加锁装置,包括 接收单元,适于接收对共享资源的控制指令;解析单元,适于解析所述控制指令,获取多个 需操作的共享资源;加锁单元,适于当所述多个需操作的共享资源都处于解锁状态,则锁定 所有所述需操作的共享资源。
可选的,所述加锁单元还适于当所述多个需操作的共享资源中有处于锁定状态的 共享资源,则等待所述处于锁定状态的共享资源解锁后,锁定所有需操作的共享资源。
可选的,所述加锁单元还适于当所述等待的时间超过预定时间,则确定对所述多 个需操作的共享资源的加锁失败。
可选的,所述对共享资源的加锁装置还包括配置单元,适于预先配置资源池,所 述资源池包括多个资源单元,分别用于存储所述共享资源。
可选的,所述资源池具有矩阵型结构,所述加锁单元锁定所有需操作的共享资源 是指锁定存储所述需操作的共享资源的资源单元所在行的所有资源单元中的共享资源。
可选的,所述资源池具有矩阵型结构,所述加锁单元锁定所有需操作的共享资源 是指锁定存储所述需操作的共享资源的资源单元所在列的所有资源单元中的共享资源。
未解决上述技术问题,本发明技术方案还提供一种对共享资源的控制装置,包括 所述的对共享资源的锁定装置;执行单元,适于在所有所述需操作的共享资源被锁定后,执 行所述控制指令。
可选的,所述对共享资源的控制装置还包括解锁单元,适于在执行完所述控制指 令后,对被锁定的共享资源进行解锁。
综上所述,本发明技术方案在确定所有需操作的共享资源均未锁定后再锁定所有 所述需操作的共享资源,相比于现有技术逐一判断并锁定共享资源的方案,避免了死锁问 题,提高了对共享资源的并发性控制的准确率和效率。


图1是本发明技术方案的对共享资源的加锁方法的基本流程示意图2是本发明技术方案的对共享资源的控制方法的基本流程示意图3是本发明技术方案的对共享资源的控制方法的实施例流程示意图4是本发明技术方案中所配置的资源池的实施例结构示意图5是本发明技术方案的对共享资源的控制方法的另一实施例流程示意图。
具体实施方式
发明人分析,现有的对共享资源的加锁过程中,当应用需要使用多个共享资源时, 是以单个共享资源为单位进行判断并锁定,即在确定一个共享资源未锁定则将其锁定,然后再判断另一个共享资源是否已锁定。这样当多个应用并发执行,需要使用多个相同的共 享资源时,就会因不同应用执行判断和锁定同一共享资源的时间顺序不同而产生死锁问 题。鉴于此,发明人提出,当应用需要使用多个共享资源时,先确定所有需要使用的共享资 源均未锁定,再对所有需要使用的共享资源批量加锁。
因此,本发明技术方案的对共享资源的加锁方法如图1所示,包括
步骤S11,接收对共享资源的控制指令;
步骤S12,解析所述控制指令,获取多个需操作的共享资源;
步骤S13,当所述多个需操作的共享资源都处于解锁状态,则锁定所有所述需操作 的共享资源。
所述共享资源是指可供应用调用或操作的资源,例如可以是单个数据,也可以是 复合数据(如数据表、数据表中的一行数据等)。所述对共享资源的控制指令是指调用或操 作共享资源的指令,所述操作可以是读取操作、修改操作等,其中,修改操作可以是对读取 的资源进行数学运算或逻辑运算,将运算结果作为更新后的资源。
进一步,所述的对共享资源的加锁方法还可以包括当所述多个需操作的共享资 源中有处于锁定状态的共享资源,则等待所述处于锁定状态的共享资源解锁后,锁定所有 需操作的共享资源。
可选的,为了避免等待的时间过长而导致系统瘫痪,还可以设置一个预定时间,若 所述等待的时间超过预定时间,则确定对所述多个需操作的共享资源的加锁失败。所述预 定时间为经验值,可以根据实际应用设置。
具体实施时,系统可以为所有的共享资源配置一存储区域(可称为资源池),所述 存储区域包括多个存储单元(可称为资源单元),每个存储单元存储一个共享资源。
基于上述对共享资源的加锁方法,本发明技术方案的对共享资源的控制方法如图 2所示,包括
步骤SI I,接收对共享资源的控制指令;
步骤S12,解析所述控制指令,获取多个需操作的共享资源;
步骤S13,当所述多个需操作的共享资源都处于解锁状态,则锁定所有所述需操作 的共享资源;
步骤S14,在所有所述需操作的共享资源被锁定后,执行所述控制指令。
进一步,所述对共享资源的控制方法还包括在执行完所述控制指令后,对被锁定 的共享资源进行解锁。
下面结合实施例及图3和图4对本发明技术方案进行详细说明。
如图3所示,首先执行步骤S21,配置资源池。在系统初始化时,可以为所有的共享 资源配置一块存储区域作为资源池,存储区域中的每个存储单元(资源单元)分别存储一个 共享资源,并且建立共享资源与存储单元地址的对应关系,当应用要调用某一共享资源时, 可以通过所述对应关系确定存储该共享资源的资源单元。资源池的结构可以是矩阵型,例 如图4所示的二维矩阵,相关联的共享资源可以存储在同一行或者同一列,例如,同一行的 共享资源关联于同一用户或账户,同一列的共享资源的类型相同。需要说明的是,图4仅为 举例,在其他实施例中,资源池可以是其他任意行数和列数的二维矩阵,也可以是一维矩阵 或其他多维矩阵。
接着执行步骤S22,解析接收到的对共享资源的控制指令,获取需操作的共享资源。以下以所接收的控制指令为对共享资源Z21和Z23执行修改操作为例进行说明。执行步骤S23,判断共享资源Z21是否锁定,若是则执行步骤S24,若否则执行步骤S25。步骤S24,判断等待时间是否超过预定时间,若是则加锁失败,结束;若否则返回步骤S23。本实施例中,所述预定时间可以设为15分钟。步骤S25,判断共享资源Z23是否锁定,若是则执行步骤S26,若否则执行步骤S27。步骤S26,判断等待时间是否超过预定时间,若是则加锁失败,结束;若否则返回步骤S25。步骤S27,对共享资源Z21和Z23加锁。具体实施时,可以对存储共享资源的Z21和Z23的资源单元设置标志位,禁止其他应用对共享资源Z21和Z23进行操作。接着执行步骤S28,对共享资源Z21和Z23执行修改操作。具体地,从资源单元中读取共享资源Z21和Z23并执行相应地运算,将运算结果更新至对应的资源单元中。接着执行步骤S29,对共享资源Z21和Z23解锁,然后结束。在其他实施例中,由于共享资源Z21和Z23存储在同一行,可以批量锁定第二行资源单元中的所有共享资源,即锁定存储所述需操作的共享资源的资源单元所在行的所有资源单元中的共享资源。这样在列数不确定的情况下,锁定一行共享资源即可锁定任意列中对应的行。具体地,依次判断共享资源Z21、Z22、Z23、Z24和Z25是否被锁定,只要其中有一个共享资源处于锁定状态则等待其解锁;当共享资源Z21、Z22、Z23、Z24和Z25都处于解锁状态,再对共享资源Z21、Z22、Z23、Z24和Z25加锁;然后执行修改共享资源Z21和Z23的操作,操作完成后解锁共享资源221、222、223、224和225。此外,也可以锁定共享资源Z21所在列的所有共享资源和共享资源Z23所在列的所有共享资源。这样在行数不确定的情况下,锁定一个列即可锁定任意行中对应的列。图5是本发明技术方案的对共享资源的控制方法的另一实施例流程图,与图3所示的流程相比,本实施例的控制流程少了在确定共享资源锁定后判断等待时间是否超过预定时间的步骤(如步骤S24和S26),也就是说,当共享资源被锁定时持续等待直至该共享资源被解锁。本领域技术人员可以理解,上述实施例的全部或部分是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质可以是ROM、RAM、磁碟、光盘等。下面以图3所示的流程为例,再举一对共享资源执行并发性操作的具体实例,当操作Al需要使用共享资源Z21和Z23,操作A2需要使用Z21、Z22和Z23 进程Al (对应于操作Al)调用进程B (对共享资源的加锁进程)对共享资源Z21和Z23加锁;进程B判断共享资源Z21和Z23均未被锁定后锁定共享资源Z21和Z23,然后向进程Al返回加锁成功的消息;进程Al接收到加锁成功的消息后对共享资源Z21和Z23进行操作,操作完成后调用进程C (对共享资源的解锁进程)对共享资源Z21和Z23解锁。在进程Al对共享资源Z21和Z23进行操作的过程中,共享资源Z21和Z23被锁定,进程A2 (对应于操作A2)调用进程B对共享资源Z21、Z22和Z23加锁;进程B判断出共享资源Z21和Z23被锁定,则不对共享资源Z21、Z22和Z23进行锁定;若在预定时间内,共享资源Z21和Z23未解锁,即进程Al的操作未完成,则进程B向进程A2返回加锁失败的 消息,进程A2不执行控制操作;若在预定时间内,进程C对共享资源Z21和Z23解锁,即进 程Al的操作完成,若此时共享资源Z22也处于解锁状态,则进程B对共享资源Z21、Z22和 Z23进行加锁,并向进程A2返回加锁成功的消息;进程A2接收到加锁成功的消息后对共享 资源Z21、Z22和Z23进行操作,操作完成后调用进程C对共享资源Z21、Z22和Z23解锁。
由上述实例可见,进程B根据共享资源是否锁定的判断结果,对需操作的共享资 源或者全部锁,或者全部不锁,这样就避免了并发执行的进程Al和进程A2按不同顺序逐个 锁定共享资源而可能发生相互等待,无法加锁也无法解锁的问题。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域 技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发 明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明 的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案 的保护范围。
权利要求
1.一种对共享资源的加锁方法,其特征在于,包括 接收对共享资源的控制指令; 解析所述控制指令,获取多个需操作的共享资源; 当所述多个需操作的共享资源都处于解锁状态,则锁定所有所述需操作的共享资源。
2.根据权利要求1所述的对共享资源的加锁方法,其特征在于,还包括当所述多个需操作的共享资源中有处于锁定状态的共享资源,则等待所述处于锁定状态的共享资源解锁后,锁定所有需操作的共享资源。
3.根据权利要求2所述的对共享资源的加锁方法,其特征在于,当所述等待的时间超过预定时间,则确定对所述多个需操作的共享资源的加锁失败。
4.根据权利要求1所述的对共享资源的加锁方法,其特征在于,还包括预先配置资源池,所述资源池包括多个资源单元,分别用于存储所述共享资源。
5.根据权利要求1所述的对共享资源的加锁方法,其特征在于,所述资源池具有矩阵型结构,锁定所有需操作的共享资源包括锁定存储所述需操作的共享资源的资源单元所在行的所有资源单元中的共享资源。
6.根据权利要求1所述的对共享资源的加锁方法,其特征在于,所述资源池具有矩阵型结构,锁定所有需操作的共享资源包括锁定存储所述需操作的共享资源的资源单元所在列的所有资源单元中的共享资源。
7.一种对共享资源的控制方法,其特征在于,包括 权利要求1至6任一项所述的对共享资源的锁定方法; 在所有所述需操作的共享资源被锁定后,执行所述控制指令。
8.根据权利要求7所述的对共享资源的控制方法,其特征在于,还包括在执行完所述控制指令后,对被锁定的共享资源进行解锁。
9.一种对共享资源的加锁装置,其特征在于,包括 接收单元,适于接收对共享资源的控制指令; 解析单元,适于解析所述控制指令,获取多个需操作的共享资源; 加锁单元,适于当所述多个需操作的共享资源都处于解锁状态,则锁定所有所述需操作的共享资源。
10.根据权利要求9所述的对共享资源的加锁装置,其特征在于,所述加锁单元还适于当所述多个需操作的共享资源中有处于锁定状态的共享资源,则等待所述处于锁定状态的共享资源解锁后,锁定所有需操作的共享资源。
11.根据权利要求10所述的对共享资源的加锁装置,其特征在于,所述加锁单元还适于当所述等待的时间超过预定时间,则确定对所述多个需操作的共享资源的加锁失败。
12.根据权利要求9所述的对共享资源的加锁装置,其特征在于,还包括配置单元,适于预先配置资源池,所述资源池包括多个资源单元,分别用于存储所述共享资源。
13.根据权利要求9所述的对共享资源的加锁装置,其特征在于,所述资源池具有矩阵型结构,所述加锁单元锁定所有需操作的共享资源是指锁定存储所述需操作的共享资源的资源单元所在行的所有资源单元中的共享资源。
14.根据权利要求9所述的对共享资源的加锁装置,其特征在于,所述资源池具有矩阵型结构,所述加锁单元锁定所有需操作的共享资源是指锁定存储所述需操作的共享资源的资源单元所在列的所有资源单元中的共享资源。
15.一种对共享资源的控制装置,其特征在于,包括权利要求9至14任一项所述的对共享资源的锁定装置;执行单元,适于在所有所述需操作的共享资源被锁定后,执行所述控制指令。
16.根据权利要求15所述的对共享资源的控制装置,其特征在于,还包括解锁单元, 适于在执行完所述控制指令后,对被锁定的共享资源进行解锁。
全文摘要
一种对共享资源的加锁、控制方法和装置,所述加锁方法包括接收对共享资源的控制指令;解析所述控制指令,获取多个需操作的共享资源;当所述多个需操作的共享资源都处于解锁状态,则锁定所有所述需操作的共享资源。本发明技术方案避免了死锁问题,提高了并发性执行操作的准确率和效率。
文档编号G06F9/46GK103064729SQ201210557310
公开日2013年4月24日 申请日期2012年12月19日 优先权日2012年12月19日
发明者虞钢 申请人:上海西本网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1