Interlocked.MemoryBarrierProcessWide Methode

Definition

Bietet eine prozessübergreifende Arbeitsspeicherbarriere, die verhindert, dass Lese- und Schreibvorgänge von CPUs über die Barriere hinaus verschoben werden.Provides a process-wide memory barrier that ensures that reads and writes from any CPU cannot move across the barrier.

public:
 static void MemoryBarrierProcessWide();
public static void MemoryBarrierProcessWide ();
static member MemoryBarrierProcessWide : unit -> unit
Public Shared Sub MemoryBarrierProcessWide ()

Hinweise

Die MemoryBarrierProcessWide-Methode unterscheidet sich wie folgt von der "normalen" MemoryBarrier Methode:The MemoryBarrierProcessWide method differs from the "normal" MemoryBarrier method as follows:

  • Die normale Speicherbarriere stellt sicher, dass die Lese-und Schreibvorgänge von der aktuellen CPU nicht über die Barriere hinaus verschoben werden können.The normal memory barrier ensures that the reads and writes from the current CPU can't move across the barrier. Die Prozess weite Speicherbarriere stellt sicher, dass alle Lese-und Schreibvorgänge aus beliebigen CPU, die im Prozess verwendet werden, nicht über die Barriere verschoben werden können.The process-wide memory barrier ensures that any read or write from any CPU being used in the process can't move across the barrier.

  • Die normale Speicherbarriere ermöglicht einen angemessenen freigegebenen Zugriff, wenn jeder Thread, der auf die Daten zugreift, Barrieren verwendetThe normal memory barrier allows reasonable shared access if every thread accessing the data uses barriers. Die Prozess weite Speicherbarriere zwingt die Synchronisierung anderer CPUs mit dem Prozess Speicher (z. b. zum leeren von Schreib Puffern und Synchronisieren von Lese Puffern).The process-wide memory barrier forces other CPUs to synchronize with process memory (for example, to flush write buffers and synchronize read buffers). Dies ermöglicht nicht Interlocked-Vorgänge für einige Threads und hat dennoch einen angemessenen gemeinsamen Zugriff.This allows for non-interlocked operations on some threads and still have reasonable shared access.

  • Die normale Speicherbarriere zwingt sehr wenig mehr Aufwand. normale Interlocked-Vorgänge Kosten wahrscheinlich weniger als hundert Zyklen.The normal memory barrier imposes very little overhead; normal interlocked operations probably cost fewer than a hundred cycles. Die Prozess weite Speicherbarriere ist sehr aufwendig.The process-wide memory barrier is very expensive. Es muss jede CPU im Prozess mit einer wahrscheinlichen Kosten Anzahl von Tausenden von Zyklen erzwingen.It has to force every CPU in the process do to something, at a probable cost of thousands of cycles.

Die MemoryBarrierProcessWide-Methode wird auch von allen Feinheiten der sperrenlosen Programmierung unterschieden.The MemoryBarrierProcessWide method also suffers from all the subtleties of lock-free programming. Dennoch kann diese Methode äußerst nützlich sein, wenn Sie Sie tatsächlich anrufen müssen, was selten vorkommen sollte.Nevertheless, this method can be extremely useful when you actually need to call it, which should be rare.

Diese Methode umschließt einen Aufrufen von flushprocesswrite tebuffers unter Windows und sys_membarrier unter Linux.This method wraps a call to FlushProcessWriteBuffers on Windows and sys_membarrier on Linux.

Gilt für: