我正在重构一些代码,并且想知道lock
在实例构造函数中使用 a 。
public class MyClass {
private static Int32 counter = 0;
private Int32 myCount;
public MyClass() {
lock(this) {
counter++;
myCount = counter;
}
}
}
请确认
- 实例构造函数是线程安全的。
- lock 语句阻止访问该代码块,而不是静态“计数器”成员。
如果原始程序员的意图是让每个实例都知道它的“计数”,我将如何同步对“计数器”成员的访问,以确保另一个线程不是新线程MyClass
并在该线程设置它之前更改计数数数?
仅供参考 - 这个类不是单例。实例必须简单地知道它们的数量。