在下面的场景中,我想知道在触发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>
我想你在打电话 functionOne() 从 functionTwo() ,就像这样:
functionOne()
functionTwo()
<!--- functionOne() ---> <cffunction name="functionOne"> <cflock name="functionOneLock" type="exclusive"> <!--- do something ---> <cfset functionTwo() /> </cflock> </cffunction>
因为您使用的是命名锁,所以您的执行线程将进入 functionOneLock 然后在该调用中调用另一个函数,从而进入 functionTwoLock . 然后,它将在从该函数返回并完成之前完成该锁中的代码 功能面板 。
functionOneLock
functionTwoLock
功能面板
所以回答你的问题 功能面板 必须等待 功能双色 完成。
功能双色
希望有帮助。