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++;
}
}