在 Adobe ColdFusion 中,如果
<cfset Application.obj = CreateObject("component","ComponentName")>
<cfset myResult = Application.obj.FunctionName()>
我担心在函数的局部作用域中声明的 var 可能会出现并发问题,因为 Application.obj 存储在 Application 作用域中。
<cffunction name="FunctionName">
<cfset var local = {}>
(pretend some long process happens here)
<cfif condition>
<cfset local.result = True>
<cfelse>
<cfset local.result = False>
</cfif>
<cfreturn local.result>
如果两个人同时在那个函数中,第 1 个人的结果是否会破坏第 2 个人的结果?
最佳答案
为避免并发问题,请在 application.cfc 的 onapplicatiomstart 方法中实例化该对象。这将确保对象只创建一次。其次,只要变量“condition”也在本地范围内,这两个调用就不会相互干扰。
关于coldfusion - 使用应用程序范围时的并发性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2285537/