Junior — Middle
Mit értünk kölcsönös kizárási állapoton több szálas programozásban?
sobes.tech MI
Válasz az MI-től
A kölcsönös zárolási állapot (deadlock) több szál esetén fordul elő, amikor két vagy több szál örökre blokkolja egymást, várva, hogy felszabadítsák egymás által foglalt erőforrásokat.
Példa:
- Az A szál megszerzi az 1-es erőforrást, és megpróbálja megszerezni a 2-es erőforrást.
- A B szál megszerzi a 2-es erőforrást, és megpróbálja megszerezni az 1-es erőforrást.
Mindkét szál vár a másikra, és nem tud továbbmenni, ami a program lefagyásához vezet.
A deadlock megelőzésére használják:
- Egyértelmű erőforrás-elsajátítási sorrendet.
- Időkorlátokat a zárolások várakozásakor.
- Magasabb szintű szinkronizációs primitívek alkalmazását.