Sobes.tech
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++;
    }
}