Sobes.tech
Junior — Middle

Felsorolnád a szálak és folyamatok szinkronizálásának fő mechanizmusait?

sobes.tech MI

Válasz az MI-től

A C#-ban a szálak és folyamatok szinkronizálásának fő mechanizmusai a következők:

  • lock — kizárólagos hozzáférést biztosít egy erőforráshoz, blokkolva egy kód szakaszt más szálak számára.
  • Mutex — folyamatok közötti zárolási mechanizmus, amely lehetővé teszi a hozzáférés szinkronizálását különböző folyamatok között.
  • Semaphore és SemaphoreSlim — korlátozzák, hogy hány szál férhet hozzá egy erőforráshoz egyidejűleg.
  • Monitor — rugalmasabb zárolási mechanizmus, amely lehetővé teszi a szálak várakozását és értesítését.
  • AutoResetEvent és ManualResetEvent — lehetővé teszik a szálak számára, hogy egy jelre várjanak a folytatáshoz.
  • Interlocked — atomikus műveleteket biztosít változók felett, elkerülve a versenyhelyzeteket.

A lock használatának példája:

private readonly object _locker = new object();

void IncrementCounter()
{
    lock (_locker)
    {
        // kritikus szakasz
        counter++;
    }
}