Встречается на собеседованиях • сегодня
Что такое синхронизация потоков
Синхронизация потоков — это механизм, который обеспечивает корректное взаимодействие потоков при работе с общими ресурсами, предотвращая состояние гонки (race condition). Основные способы:
- lock (Monitor) – блокирует критическую секцию для одного потока:
csharp
private static object _lock = new object();
lock (_lock)
{
// Критическая секция
}- Mutex – межпроцессная блокировка:
csharp
using var mutex = new Mutex(false, "GlobalMutex");
mutex.WaitOne();
try { /* работа с ресурсом */ }
finally { mutex.ReleaseMutex(); }- Semaphore – ограничивает количество потоков:
csharp
SemaphoreSlim semaphore = new SemaphoreSlim(3); // Макс 3 потока
await semaphore.WaitAsync();
try { /* работа */ }
finally { semaphore.Release(); }- Interlocked – атомарные операции:
csharp
int counter = 0;
Interlocked.Increment(ref counter);Важно избегать взаимных блокировок (deadlock) и минимизировать время удержания блокировок.

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