Встречается на собеседованиях • сегодня
Что такое примитивы синхронизации
Примитивы синхронизации — это механизмы, обеспечивающие корректное взаимодействие потоков при работе с общими ресурсами. Основные примитивы в C#:
- lock — простейший способ, блокирует критическую секцию для одного потока:
csharp
private readonly object _lockObj = new object();
lock (_lockObj)
{
// критическая секция
}- Monitor — более гибкая альтернатива lock с методами Wait/Pulse:
csharp
Monitor.Enter(_lockObj);
try { /* работа */ }
finally { Monitor.Exit(_lockObj); }- Mutex — межпроцессная блокировка:
csharp
using var mutex = new Mutex(false, "Global\\MyMutex");
mutex.WaitOne();
try { /* работа */ }
finally { mutex.ReleaseMutex(); }- Semaphore — ограничивает число потоков:
csharp
using var sem = new Semaphore(3, 3); // максимум 3 потока
sem.WaitOne();
try { /* работа */ }
finally { sem.Release(); }- AutoResetEvent/ManualResetEvent — сигнализация между потоками.
Выбор зависит от сценария: для простых случаев — lock, для сложных — другие примитивы. Важно избегать deadlock'ов и минимизировать время удержания блокировок.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы