Heim > Datenbank > MySQL-Tutorial > 4 grundlegende Möglichkeiten, Deadlocks zu lösen

4 grundlegende Möglichkeiten, Deadlocks zu lösen

Guanhui
Freigeben: 2020-05-30 16:57:43
Original
17826 Leute haben es durchsucht

4 grundlegende Möglichkeiten, Deadlocks zu lösen

4 grundlegende Methoden zur Lösung von Deadlocks

1. Deadlocks verhindern: Legen Sie einige Einschränkungen fest, um die Faktoren zu zerstören, die Deadlocks verursachen. Notwendige Bedingungen

2. Deadlock vermeiden: Verwenden Sie während des Ressourcenzuweisungsprozesses eine Methode, um zu verhindern, dass das System in einen unsicheren Zustand eintritt, und vermeiden Sie so einen Deadlock Bei der Erkennung werden einige Maßnahmen ergriffen, um den Deadlock zu beseitigen

4. Entfernen des Deadlocks: Diese Methode wird in Verbindung mit der Deadlock-Erkennung verwendet

Einführung in den Deadlock

Deadlock bezieht sich auf ein Blockierungsphänomen, das dadurch verursacht wird, dass zwei oder mehr Prozesse während der Ausführung um Ressourcen konkurrieren oder miteinander kommunizieren. Ohne äußere Kraft kann keiner von ihnen voranschreiten. Zu diesem Zeitpunkt befindet sich das System in einem Deadlock-Zustand oder das System hat einen Deadlock. Diese Prozesse, die immer aufeinander warten, werden Deadlock-Prozesse genannt.


Bedingungen


Obwohl während der Ausführung des Prozesses ein Deadlock auftreten kann, ist das Auftreten eines Deadlocks ebenfalls sicher Bedingungen müssen erfüllt sein Die folgenden vier notwendigen Bedingungen müssen erfüllt sein, damit ein Deadlock auftritt.

1) Bedingung des gegenseitigen Ausschlusses: Bezieht sich auf die ausschließliche Nutzung zugewiesener Ressourcen durch einen Prozess, dh eine bestimmte Ressource wird innerhalb eines bestimmten Zeitraums nur von einem Prozess belegt. Wenn zu diesem Zeitpunkt andere Prozesse Ressourcen anfordern, kann der Anforderer nur warten, bis der Prozess, der die Ressourcen belegt, aufgebraucht und freigegeben ist.

2) Anforderungs- und Haltebedingungen: Dies bedeutet, dass der Prozess mindestens eine Ressource gehalten hat, aber eine neue Ressourcenanforderung gestellt hat und die Ressource zu diesem Zeitpunkt von anderen Prozessen belegt wurde ist blockiert, hat die Ressource aber bereits angefordert. Andere erhaltene Ressourcen bleiben unverändert.

3) Nicht-Entzugsbedingung: Bezieht sich auf die Ressource, die der Prozess erhalten hat. Sie kann nicht entzogen werden, bevor sie aufgebraucht ist, und kann erst dann von selbst freigegeben werden, wenn sie aufgebraucht ist.

4) Schleifenwartebedingung: Wenn ein Deadlock auftritt, muss ein Prozess vorhanden sein – eine kreisförmige Ressourcenkette, d. h. P0 im Prozesssatz {P0, P1, P2,···,Pn} Warten auf eine von P1 belegte Ressource; P1 wartet auf eine von P2 belegte Ressource, ..., Pn wartet auf eine von P0 belegte Ressource.

Empfohlenes Tutorial: „

MySQL-Tutorial


Das obige ist der detaillierte Inhalt von4 grundlegende Möglichkeiten, Deadlocks zu lösen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage