代码之家  ›  专栏  ›  技术社区  ›  Mohamad

在不同功能中使用多个锁时,cflock释放的正确顺序是什么?

  •  2
  • Mohamad  · 技术社区  · 15 年前

    在下面的场景中,我想知道在触发functiontwolock之前是functiononlock释放自己,还是等到functiontwolock首先释放?

    <!--- functionOne() --->
    <cffunction name="functionOne">
    <cflock name="functionOneLock" type="exclusive">
       <!--- do something --->
       <cfset functionTwo()>
    </cflock>
    </cffunction>
    
    <!--- functionTwo() --->
    <cffunction name="functionTwo">
    <cflock name="functionTwoLock" type="exclusive">
       <!--- do something here --->
    </cflock>
    </cffunction>
    
    1 回复  |  直到 15 年前
        1
  •  2
  •   Ciaran Archer    15 年前

    我想你在打电话 functionOne() functionTwo() ,就像这样:

    <!--- functionOne() --->
    <cffunction name="functionOne">
    <cflock name="functionOneLock" type="exclusive">
       <!--- do something --->
       <cfset functionTwo() />
    </cflock>
    </cffunction>
    

    因为您使用的是命名锁,所以您的执行线程将进入 functionOneLock 然后在该调用中调用另一个函数,从而进入 functionTwoLock . 然后,它将在从该函数返回并完成之前完成该锁中的代码 功能面板

    所以回答你的问题 功能面板 必须等待 功能双色 完成。

    希望有帮助。

    推荐文章