Sobes.tech
Junior — Middle

Milyen szálak szinkronizációs mechanizmusait ismeri és tudja használni projektjeiben?

sobes.tech MI

Válasz az MI-től

C#-ban különböző mechanizmusokat használnak a szálak szinkronizálására:

  • lock — egyszerű módja a kritikus szekció zárolásának.
  • Mutex — interprocesszus zárolás, hasznos, ha különböző folyamatok közötti hozzáférést kell szinkronizálni.
  • Semaphore és SemaphoreSlim — lehetővé teszik, hogy korlátozzák a párhuzamosan futó szálak számát egy adott kódrészleten.
  • Monitor — rugalmasabb mechanizmus, amelyre a lock alapul.
  • ManualResetEvent és AutoResetEvent — a szálak közötti jelzésekhez.
  • Concurrent kollekciók a System.Collections.Concurrent névtérből — biztosítják a szálbiztos hozzáférést a kollekciókhoz.

Példa a lock használatára:

private readonly object _lockObj = new object();

public void IncrementCounter()
{
    lock(_lockObj)
    {
        // Kritikus szekció
        counter++;
    }
}