Sobes.tech
Junior — Middle

Jakie mechanizmy synchronizacji wątków znasz i możesz używać w swoich projektach?

sobes.tech AI

Odpowiedź od AI

W C# używa się różnych mechanizmów synchronizacji wątków:

  • lock — prosty sposób blokowania sekcji krytycznej kodu.
  • Mutex — blokada międzyprocesowa, przydatna, gdy trzeba synchronizować dostęp między różnymi procesami.
  • Semaphore i SemaphoreSlim — pozwalają ograniczyć liczbę wątków wykonujących określony fragment kodu jednocześnie.
  • Monitor — bardziej elastyczny mechanizm, na którym oparty jest lock.
  • ManualResetEvent i AutoResetEvent — do sygnalizacji między wątkami.
  • Kolekcje współbieżne z przestrzeni nazw System.Collections.Concurrent — zapewniają bezpieczny dostęp do kolekcji w środowisku wielowątkowym.

Przykład użycia lock:

private readonly object _lockObj = new object();

public void IncrementCounter()
{
    lock(_lockObj)
    {
        // Sekcja krytyczna
        counter++;
    }
}