【问题标题】:private static variables in c# and thread safetyc#中的私有静态变量和线程安全
【发布时间】:2013-10-09 07:18:22
【问题描述】:

我的一位同事在多线程 c# 应用程序中编写了以下代码...

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

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

虽然 var1 是私有的并设置为非静态部分类,但它是静态的事实意味着它可以被所有线程共享。
此外,不会对 var1 执行锁定。 因此,var1 不是线程安全的。

只是希望有人验证我是否正确。

【问题讨论】:

标签: c# variables static private


【解决方案1】:

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

这是真的。它可能可能被多个线程使用。

此外,不会对 var1 执行锁定。因此,var1 不是线程安全的。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多