Недавно я был в интервью, и технический парень спросил меня о том, как сделать приложение безопасным.
Ну, правильно объяснив lock()
, он сказал, что не стоит ставить объект как статический.
private static readonly object _syncLock = new object();
Он утверждал, что причина в том, что статический объект делает этот объект более медленным для блокировки потоков, чем если бы он был нестационарным. Это правда?
EDIT: Тем не менее я все еще не уверен. В чем разница между этими тремя подходами?
private static readonly object _syncLock = new object();
public static readonly object _syncLock = new object();
private readonly object _syncLock = new object();