Junior — Middle
Mi a szerepe és célja a zárolási (Lock) mechanizmusnak a több szálas programozásban?
sobes.tech MI
Válasz az MI-től
A zárolási mechanizmus (Lock) a több szálú programozásban az egyes erőforrásokhoz való hozzáférés kölcsönös kizárásának biztosítására szolgál. Fő szerepe, hogy megakadályozza, hogy több szál egyidejűleg módosítsa az adatokat, ami versenyhelyzetekhez és kiszámíthatatlan programviselkedéshez vezethet.
Amikor egy szál megszerzi a zárolást, más szálak, amelyek ugyanazt a zárolást próbálják megszerezni, várni fognak, amíg az fel nem szabadul. Ez garantálja, hogy csak egy szál hajthat végre egyszerre kritikus szekciót a kódban, amely a közös erőforráshoz kapcsolódik.
Példa C#-ban:
private readonly object _lockObj = new object();
public void IncrementCounter()
{
lock (_lockObj)
{
// Kritikus szekció
counter++;
}
}
Itt a lock garantálja, hogy a számláló növelése atomikus legyen, és ne szakítsa meg más szál.