代码之家  ›  专栏  ›  技术社区  ›  mfeingold

静态初始值设定项和线程同步(.NET)

  •  1
  • mfeingold  · 技术社区  · 15 年前


    似乎在多线程环境中,具有非平凡静态初始值设定项的类可能成为争用源,因为当多个线程访问该类时需要同步。

    4 回复  |  直到 15 年前
        1
  •  1
  •   mamboking    15 年前

    我认为没有太多争议。初始化器在类加载时运行。如果类已加载,则不必进行任何检查。

        2
  •  1
  •   Scott Dorman    15 年前

    静态构造函数的执行由应用程序域中发生的以下第一个事件触发:

    • 将创建该类的一个实例。
    • 类的任何静态成员都被引用

    调用静态构造函数时,类装入器应该负责处理并发性问题。

        3
  •  0
  •   nos    15 年前

    规范中说“在第一次使用该类的静态字段之前,在依赖于实现的时间执行”。

    因此,我们可以假设(或者,如果您持悲观态度的话,我们希望)实现已经发现它们需要关心线程同步。

        4
  •  0
  •   Nick Robinson    15 年前

    刻痕