Sobes.tech
Junior — Middle

Tudna példát mondani olyan helyzetre, amikor a rendszerben erőforrások kölcsönös blokkolása történik?

sobes.tech MI

Válasz az MI-től

A holtpont (deadlock) akkor fordul elő, amikor két vagy több folyamat (vagy szál) egymást várja, miközben olyan erőforrásokat tartanak, amelyekre a többieknek szükségük van a folytatáshoz.

Példa helyzet:

  • 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 arra vár, hogy a másik felszabadítsa az erőforrásokat, és egyik sem tud tovább lépni.

Az iOS-en ez például akkor fordulhat elő, ha több zárolást (lock) vagy sorozatot használunk, amikor az erőforrások megszerzésének sorrendje nincs ellenőrizve. Az elkerülés érdekében fontos betartani az erőforrások megszerzésének sorrendjét, vagy timeoutokat és más szinkronizációs mechanizmusokat alkalmazni.