【发布时间】:2012-01-25 00:04:05
【问题描述】:
我是一名 .NET 和 Java 开发人员,对线程比较陌生。我想知道为什么静态字段、静态构造函数等通常被认为是“线程安全的”。
例如,在 .NET 中构造单例时,使其成为线程安全的技巧之一是使模式的某些组件成为静态的。
如果我的上述任何假设不正确,请告诉我。
【问题讨论】:
-
您从哪里读到将静态内容设为线程安全?
-
我不了解 C# 和 .net,但在 java 中,静态字段并不比任何其他类型的字段线程安全。
-
来自 Jeffrey 的链接:
Static methods aren't inherently thread-safe. They're treated no differently by the CLR than instance methods. The difference is that one should generally try to make them thread-safe -
你倒退了。 由于可能从多个线程访问静态字段和方法,因此确保它们是线程安全的工作是一种很好的编程习惯。 这就是为什么您会看到这么多文档说“静态这个类的方法是线程安全的,其余的都不是”。
标签: c# java .net multithreading