Interlocked.MemoryBarrierProcessWide Método

Definição

Fornece uma barreira de memória em todo o processo, que garante que leituras e gravações de qualquer CPU não possam se mover pela barreira.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 ()

Comentários

O MemoryBarrierProcessWide método difere do método "normal" da MemoryBarrier seguinte maneira:The MemoryBarrierProcessWide method differs from the "normal" MemoryBarrier method as follows:

  • A barreira de memória normal garante que as leituras e gravações da CPU atual não possam se mover pela barreira.The normal memory barrier ensures that the reads and writes from the current CPU can't move across the barrier. A barreira de memória de todo o processo garante que qualquer leitura ou gravação de qualquer CPU que esteja sendo usada no processo não possa se mover pela barreira.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.

  • A barreira de memória normal permite acesso compartilhado razoável se cada thread que acessa os dados usar barreiras.The normal memory barrier allows reasonable shared access if every thread accessing the data uses barriers. A barreira de memória de todo o processo força outras CPUs a sincronizarem com a memória do processo (por exemplo, para liberar buffers de gravação e sincronizar buffers de leitura).The process-wide memory barrier forces other CPUs to synchronize with process memory (for example, to flush write buffers and synchronize read buffers). Isso permite operações não interligadas em alguns threads e ainda tem acesso compartilhado razoável.This allows for non-interlocked operations on some threads and still have reasonable shared access.

  • A barreira de memória normal impõe muito pouca sobrecarga; as operações normais interligadas provavelmente custarão menos de cem ciclos.The normal memory barrier imposes very little overhead; normal interlocked operations probably cost fewer than a hundred cycles. A barreira de memória em todo o processo é muito cara.The process-wide memory barrier is very expensive. Ele precisa forçar cada CPU no processo a fazer algo, a um custo provável de milhares de ciclos.It has to force every CPU in the process do to something, at a probable cost of thousands of cycles.

O MemoryBarrierProcessWide método também sofre de todas as sutilezas da programação sem bloqueio.The MemoryBarrierProcessWide method also suffers from all the subtleties of lock-free programming. No entanto, esse método pode ser extremamente útil quando você realmente precisa chamá-lo, o que deve ser raro.Nevertheless, this method can be extremely useful when you actually need to call it, which should be rare.

Esse método encapsula uma chamada para FlushProcessWriteBuffers no Windows e sys_membarrier no Linux.This method wraps a call to FlushProcessWriteBuffers on Windows and sys_membarrier on Linux.

Aplica-se a