Back to questions
Junior — Middle
73
Какими методами можно реализовать безопасную блокировку ресурсов внутри класса?
Companies where asked
Банк ПСБ
Answer from AI
sobes.tech AI
В C# для безопасной блокировки ресурсов внутри класса обычно используют ключевое слово lock. Оно позволяет синхронизировать доступ к разделяемым ресурсам, предотвращая состояние гонки.
Пример:
private readonly object _lockObject = new object();
public void SafeMethod()
{
lock (_lockObject)
{
// Код, который должен выполняться атомарно
}
}
Другие методы:
- Использование
MutexилиSemaphoreдля межпроцессной синхронизации. Monitor.EnterиMonitor.Exitдля более тонкого контроля.ReaderWriterLockSlimдля разделения блокировок на чтение и запись.
Важно использовать отдельный приватный объект для блокировки, чтобы избежать взаимных блокировок и обеспечить безопасность.