Junior — Middle
Czy możesz wymienić główne mechanizmy synchronizacji wątków i procesów?
sobes.tech AI
Odpowiedź od AI
Główne mechanizmy synchronizacji wątków i procesów w C# obejmują:
- lock — zapewnia wyłączny dostęp do zasobu, blokując fragment kodu dla innych wątków.
- Mutex — mechanizm blokowania międzyprocesowego, umożliwiający synchronizację dostępu między różnymi procesami.
- Semaphore i SemaphoreSlim — ograniczają liczbę wątków, które mogą jednocześnie uzyskać dostęp do zasobu.
- Monitor — bardziej elastyczny mechanizm blokowania z możliwością oczekiwania i powiadamiania wątków.
- AutoResetEvent i ManualResetEvent — pozwalają wątkom oczekiwać na sygnał do kontynuacji pracy.
- Interlocked — zapewnia operacje atomowe na zmiennych, aby zapobiec wyścigom.
Przykład użycia lock:
private readonly object _locker = new object();
void IncrementCounter()
{
lock (_locker)
{
// sekcja krytyczna
counter++;
}
}