Deadlock Definition

Was ist Deadlock?

Ein Deadlock ist ein Zustand, in dem ein Programm nicht auf eine Ressource zugreifen kann, die es zum Fortfahren benötigt. Wenn eine aktive Anwendung in einen Deadlock gerät, kann sie „hängen“ oder nicht mehr reagieren.

Ressourcen, wie z.B. gespeicherte oder zwischengespeicherte Daten, können gesperrt werden, wenn ein bestimmter Prozess innerhalb eines Programms darauf zugreift. Das Sperren der Daten verhindert, dass andere Prozesse die Daten vorzeitig überschreiben. Wenn ein Prozess oder eine Abfrage auf gesperrte Daten zugreifen muss, der Prozess, der die Daten sperrt, dies aber nicht zulässt, kann es zu einem Deadlock kommen.

Beispielsweise führt die folgende Situation zu einem Deadlock zwischen zwei Prozessen:

* Prozess 1 fordert Ressource B von Prozess 2 an.
* Ressource B ist gesperrt, während Prozess 2 läuft.
* Prozess 2 benötigt Ressource A von Prozess 1, um seinen Prozess zu beenden.
* Ressource A ist gesperrt, während Prozess 1 läuft.

Das Ergebnis ist, dass Prozess 1 und Prozess 2 auf die Beendigung des jeweils anderen warten. Da keiner der beiden Prozesse fortfahren kann, bis der andere fertig ist, entsteht ein Deadlock.

Vermeiden von Deadlocks

Entwickler können Deadlocks verhindern, indem sie Sperrbedingungen in ihrer Programmierlogik vermeiden. Anstatt beispielsweise zwei Prozesse voneinander abhängig zu machen, kann der Quellcode so geschrieben werden, dass jeder Thread beendet wird, bevor ein anderer Thread seine Ressourcen benötigt. Indem man sicherstellt, dass auf Daten zugegriffen werden kann, wenn sie benötigt werden, können Programmierer ihre Anwendungen vor dem Aufhängen oder Abstürzen schützen.

Hinweis:Deadlocks können auch auftreten, wenn zwei oder mehr Abfragen auf einer Datenbank ausgeführt werden. Transaktionale Datenbanken sperren aktive Datensätze und verhindern, dass andere Abfragen auf sie zugreifen können. Wenn ein Prozess nicht auf einen gesperrten Datensatz zugreifen kann, kann es zu einem Deadlock in der Datenbank kommen.

Die Definition von Deadlock auf dieser Seite ist eine Originaldefinition von SharTec.eu.
Das Ziel von SharTec ist es, Computerterminologie so zu erklären, dass sie leicht zu verstehen ist. Wir bemühen uns bei jeder von uns veröffentlichten Definition um Einfachheit und Genauigkeit. Wenn Sie Feedback zur Deadlock-Definition haben oder einen neuen Fachbegriff vorschlagen möchten, kontaktieren Sie uns bitte.