warum warum memory_order_seq_cst zum Einstellen von Stop -Flag nutzen, wenn er mit memory_order_relaxed checkt? Involving:
Haupt -Thread -Laich -Arbeiter -Threads
while (!stop.load(std::memory_order_relaxed)) { // Perform tasks }
Analyse:
mo_relaxed sind ausreichend, um zu laden und zu lagern. Die Beobachtung von Änderungen in Stop oder Keep_Running Flags ist entscheidend.
Es ist unklar, warum Sutter gegen entspannte Geschäftsoperationen rät. Der ISO -C -Standard gibt jedoch kein Sichtbarkeitszeitpunkt oder die Faktoren, die sich auswirken. Implementierungen sind nur vorgeschrieben, um die Sichtbarkeit innerhalb einer endlichen Zeit zu gewährleisten.
Inter-Thread-Latenz und -implementierung:
Inter-Thread-Latenz wird in erster Linie durch die Implementierung bestimmt. Implementierungen in der realen Welt nutzen Hardware-Cache-Kohärenzmechanismen, was typischerweise zu einer geringen Latenz (zehn Nanosekunden) zur Sichtbarkeit des Speichers führt. Sie steuern lediglich das Verhalten der nachfolgenden Operationen im Verhältnis zum Geschäft oder zur Last. Stärkere Bestellungen beschleunigen Ereignisse nicht, sondern verzögern andere Operationen, bis die angegebene Bestellung aufrechterhalten wird.
entspannte Sichtbarkeit und Hardware -Cache -Kohärenz:
auf echtem Hardware mit Cache -Kohärenz, Speicherbestellungen erhöhen das Sichtbarkeitszeitablauf nicht. they solely manage the ability of subsequent operations to become globally visible before store commitment.
Benefits of Relaxed Memory Order for Stop Flag:The primary benefits of relaxed memory order for checking the stop flag are:
Increased parallelism across loop iterations when the load result is false.Vermeidung unnötiger Anweisungsausführung, insbesondere auf ISAs, bei denen erbracht oder seq_cst laden (z. B. ARMV7 DMB ISH).
Schlussfolgerung:
In diesem Szene und in beiden Szenen sind die Szene und in beide Szene. Stoppen Sie die Flagge. MEAMMEIT_ORDER_SEQ_CST ist nicht erforderlich, um das Sichtbarkeitszeitpunkt des Speichers zu verbessern. Stattdessen wird es verwendet, um die gewünschte Reihenfolge der nachfolgenden Operationen durchzusetzen und Probleme mit gleichzeitigen Schriftstellern zu vermeiden.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3