Sobes.tech
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.