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 DeadlockDeadlock 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.
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-TutorialDas 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!