2013-10-02 114 views
4

我的一个collegue已经写了一个多线程的C#应用​​程序下面的代码...私有静态变量

public class1 
{ 
    private static partialClass var1 = new partialNonStaticClass(); 

    public static method1() 
    { 
     //do something with var1 
    } 
} 

虽然VAR1是私有的,设置为一个非静态局部类,事实上,它是静态的意味着它可以被所有线程共享。
另外,在var1上不执行锁定。 因此,var1不是线程安全的。

只想有人来验证我是正确的。

+0

[你称之为“线程安全”的东西是什么?](http://blogs.msdn.com/b/ericlippert/archive/2009/10/19/what-is-this-thing-you-call -thread-safe.aspx) –

回答

4

,它是静态的这一事实意味着它可以被所有线程共享。

这是事实。它可能可能被多个线程使用。

另外,在var1上不执行锁定。因此,var1不是线程安全的。

这可能会也可能不会。如果partialNonStaticClass本身是线程安全的,则可能不需要锁定。