Mehrere Threads (oder Prozesse) möchten denselben spezifischen nicht wiedereintrittsfähigen Programmcodeblock (als kritischer Abschnitt bezeichnet) ausführen, was eine geeignete Synchronisierungstechnologie zur Parallelitätssteuerung erfordert. Andernfalls kann es zu Rennbedingungen kommen.
Ressourcenbetriebe müssen einige technische Mittel eingesetzt werden, um kritische Ressourcen zu schützen und Verwirrung bei der allgemeinen Verwendung zu vermeiden.
Um ein einfaches Beispiel zu nennen: Unser Alipay überweist Herrn @wangchai ?1RBM. Zu diesem Zeitpunkt hat er bereits 1 Yuan in seiner Brieftasche, aber wegen dieser beiden Konten werden gleichzeitig eingegeben, sodass das Nicht-Thread-Synchronisierungssystem die folgenden Vorgänge ausführt:
Der endgültige Brieftaschensaldo der Nicht-Thread-Synchronisierung beträgt 2 Yuan, was offensichtlich falsch ist Thread-Synchronisierung:
Schließlich beträgt das Guthaben der Brieftasche 3 Yuan. Was sind also die spezifischen Methoden?
Wir können hier auch ein beliebteres Beispiel verwenden:
Es gibt eine neu gebaute Kreuzung. Es gibt nicht viele Fahrzeuge, wenn sie kommen Aber nach und nach wussten immer mehr Menschen von dieser Straße, aber alle passierten die Kreuzung ungeordnet. Deshalb ereignete sich eines Tages ein Unfall, also installierte der Verantwortliche für Straßeneinrichtungen eine Ampel Wenn das grüne Licht in die Richtung leuchtet, können die Leute in dieser Richtung vorwärts fahren. Es handelt sich um eine gegenseitige Ausschlusssperre. Einige Fahrzeuge müssen hier nicht unbedingt überqueren Seien Sie also verantwortungsbewusst. Die Verantwortlichen für die Straßeninfrastruktur haben eine Wendespur entworfen, damit Wendefahrzeuge vorbeifahren können, ohne auf die rote Ampel mit geradeaus fahrenden Fahrzeugen warten zu müssen, um umzukehren. Dies ist die Lese-/Schreibsperre In einem Lagerhaus in der Nähe brach ein Brand aus (die belegten Ressourcen wurden nicht freigegeben und andere Fahrzeuge konnten sich nicht normal bewegen). Bis die Feuerwehr vorbeikam, ist dies die Schleuse. Mit der Zeit hat sich der Verkehrsdruck erhöht und die Verkehrsbehörde hat begonnen, Vorschriften festzulegen Zu den Hauptverkehrszeiten am Abend ist die Durchfahrt von Fahrzeugen aus anderen Orten verboten, und es werden nur begrenzte Zahlen angezeigt. Dies dient dazu, „Bedingungsvariablen“ hinzuzufügen. Puffer entlasten den Druck Einige Beispiele sind möglicherweise nicht so genau, wie z. B. Drehsperren, aber dadurch Durch die Kombination eines Beispiels mit tatsächlicher Theorie können wir die Eigenschaften jeder Sperre im Speicher schnell verstehen. -
Das obige ist der detaillierte Inhalt vonZwei Beispiele aus dem Leben helfen Ihnen, das „Thread-Synchronisationsprinzip' zu verstehen.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!