Back to questions
OZON
Aston
Junior — Middle
65
Какие механизмы синхронизации потоков вы знаете и можете использовать в своих проектах?
Companies where asked
Почтатех
Бренд Монитор
appfox
Answer from AI
sobes.tech AI
В C# для синхронизации потоков используются различные механизмы:
- lock — простой способ блокировки критической секции кода.
- Mutex — межпроцессная блокировка, полезна, когда нужно синхронизировать доступ между разными процессами.
- Semaphore и SemaphoreSlim — позволяют ограничить количество потоков, одновременно выполняющих определённый участок кода.
- Monitor — более гибкий механизм, на котором основан lock.
- ManualResetEvent и AutoResetEvent — для сигнализации между потоками.
- Concurrent коллекции из пространства имён System.Collections.Concurrent — обеспечивают потокобезопасный доступ к коллекциям.
Пример использования lock:
private readonly object _lockObj = new object();
public void IncrementCounter()
{
lock(_lockObj)
{
// Критическая секция
counter++;
}
}