鉴于以下情况,我想知道functionOneLock是否在触发functionTwoLock之前释放自身,还是等到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>
答案 0 :(得分:2)
我认为你是从functionOne()
致电functionTwo()
,如下:
<!--- functionOne() --->
<cffunction name="functionOne">
<cflock name="functionOneLock" type="exclusive">
<!--- do something --->
<cfset functionTwo() />
</cflock>
</cffunction>
由于您使用的是命名锁,因此您的执行线程将输入functionOneLock
,然后在该调用中输入另一个函数functionTwoLock
。然后,它将在从该函数返回并完成functionOneLock
之前完成该锁中的代码。
因此,要回答您的问题,functionOneLock
必须等待functionTwoLock
完成。
希望有所帮助。