最近我参加了一次面试,技术面试官问我如何使一个应用程序具有线程安全性。
在正确解释了lock()
之后,他说将对象设置为静态的不是一个好主意。
private static readonly object _syncLock = new object();
他声称的原因是静态对象比非静态对象更慢,因为它对于线程锁定来说更加困难。这是真的吗?编辑: 尽管如此,我仍然不确定。这三种方法有什么区别?
private static readonly object _syncLock = new object();
public static readonly object _syncLock = new object();
private readonly object _syncLock = new object();