Junior — Middle
Μπορείτε να εξηγήσετε τι είναι το κλείδωμα Mutex στη γλώσσα C# και πώς χρησιμοποιείται για τον συγχρονισμό νημάτων;
sobes.tech AI
Απάντηση από AI
Mutex (взаимное исключение) — это механизм синхронизации в C#, который позволяет ограничить доступ к ресурсу или критической секции кода только одному потоку одновременно.
Когда один поток захватывает Mutex, другие потоки, пытающиеся захватить тот же Mutex, будут ждать, пока первый поток не освободит его.
Пример использования:
private static readonly object mutex = new object();
void CriticalSection()
{
lock(mutex) // lock — это синтаксический сахар для Monitor.Enter/Exit, похожий по смыслу на Mutex
{
// Код, который должен выполняться только одним потоком одновременно
}
}
Для системных Mutex можно использовать класс System.Threading.Mutex, который может работать даже между процессами.
Mutex помогает избежать гонок данных и обеспечивает корректную работу многопоточных приложений.