Sobes.tech
Middle

Wat is een deadlock?

sobes.tech AI

Antwoord van AI

Deadlock (wederzijdse blokkering) — een situatie in een multithread-toepassing waarin twee of meer threads elkaar voor altijd blokkeren, wachtend op het vrijmaken van resources die door een ander thread worden vastgehouden. Als gevolg hiervan kan geen van de threads doorgaan.

Voorbeeld van een klassieke deadlock-situatie:

  • Thread A verwerft resource 1 en wacht op resource 2.
  • Thread B verwerft resource 2 en wacht op resource 1.

Beide threads worden voor altijd geblokkeerd.

Om deadlocks te voorkomen, worden toegepast:

  • Een strikte volgorde bij het verwerven van resources.
  • Time-outs bij het wachten op blokkades.
  • Gebruik van niet-blokkerende algoritmen.

Voorbeeld in Java:

synchronized(resource1) {
    synchronized(resource2) {
        // werken met resources
    }
}

Als een andere thread probeert resources in de omgekeerde volgorde te verwerven, kan een deadlock ontstaan.