考虑我有一个共享功能:-
Public Shared Function CalculateAreaFromRadius(ByVal radius As Double) As Double
' square the radius...
Dim radiusSquared As Double
radiusSquared = radius * radius
' multiply it by pi...
Dim result As Double
result = radiusSquared * Math.PI
'Wait a bit, for the sake of testing and
'simulate another call will be made b4 earlier one ended or such
for i as Integer = 0 to integer.Max
Next
' return the result...
Return result
End Function
我的问题:
如果我在同一个 vb .net 应用程序中有两个或多个线程,并且每个线程都使用不同的 RADIUS 同时调用共享函数,那么它们每个线程都会获得自己的 AREA 吗?
我想知道每次调用该函数是否使用相同的局部变量或每次调用都会创建局部变量的新实例?
如果我有多个 (2+) 单线程应用程序,并且它们都使用不同的 RADIUS 值同时调用该函数,那么上述问题的答案是否相同?
我将感谢您的回复。谢谢。
1) 如果我在同一个 vb .net 应用程序中有两个或多个线程,并且每个线程都使用不同的 RADIUS 同时调用共享函数,那么它们每个线程都会获得自己的 AREA 吗?
是的,因为半径值是按值传递的,并且该方法只使用本地声明变量。
2)我想知道每次调用该函数是否使用相同的局部变量或每次调用都会创建局部变量的新实例?
每次调用都会创建其局部变量的一个新实例。
3) 如果我有多个(2+)单线程应用程序,并且它们都以不同的 RADIUS 值同时调用该函数,那么上述问题的答案是否相同?
是的。同样,因为没有共享的信息存储,并且所有输入都是按值传递,所以它是线程安全的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)