Resultados de la búsqueda a petición "memory-barriers"

2 la respuesta

GCC reordenando a través de la carga con `memory_order_seq_cst`. ¿Esto está permitido?

Usando una versión simplificada de un básicoseqlock [https://en.wikipedia.org/wiki/Seqlock], gcc reordena una carga no atómica a través de un atómicoload(memory_order_seq_cst) al compilar el código con-O3. Este reordenamiento no se observa al ...

2 la respuesta

Atomicidad en x86

8.1.2 Bloqueo de busLos procesadores Intel 64 e IA-32 proporcionan una señal LOCK # que se activa automáticamente durante ciertas operaciones críticas de memoria para bloquear el bus del sistema o un enlace equivalente. Mientras se afirma esta ...

4 la respuesta

¿Debería la clase a prueba de hilos tener una barrera de memoria al final de su constructor?

Al implementar una clase destinada a ser segura para subprocesos, ¿debo incluir una barrera de memoria al final de su constructor, para garantizar que se hayan completado las estructuras internas antes de poder acceder a ellas? ¿O ...

1 la respuesta

¿Hay una barrera de memoria implícita con relación sincronizada con thread :: join?

Tengo un código en el trabajo que inicia varios subprocesos que realizan algunas operaciones y, si alguno de ellos falla, configuran la variable compartida enfalso. Luego, el hilo principal se une a todos los hilos de trabajo. La simulación ...

1 la respuesta

¿Es std :: mutex secuencialmente consistente?

Digamos que tengo dos hilosA yB escribir en una variable booleana globalfA yfB respectivamente, que inicialmente se establecen enfalse y están protegidos porstd::mutex objetosmA ymB respectivamente: // Thread A mA.lock(); assert( fA == false ); ...

4 la respuesta

¿Cuándo debo usar _mm_sfence _mm_lfence y _mm_mfence

Leí la "Guía de la guía de optimización de Intel para la arquitectura Intel". Sin embargo, todavía no tengo idea de cuándo debo usar _mm_sfence() _mm_lfence() _mm_mfence()¿Alguien podría explicar cuándo se deben usar al escribir código ...

5 la respuesta

Volátil y Thread.MemoryBarrier en C #

Para implementar uncódigo libre de bloqueopara la aplicación multiproceso que utilicévolatile variables,Teóricamente: Losvolatile la palabra clave simplemente se usa para asegurarse de que todos los hilos vean el valor más actualizado de una ...

4 la respuesta

¿Es una barrera de memoria una instrucción que ejecuta la CPU, o es solo un marcador?

Estoy tratando de entender exactamente qué es una barrera de memoria. Según lo que sé hasta ahora, una barrera de memoria (por ejemplo:mfence) se utiliza para evitar el reordenamiento de instrucciones de antes a después y de después a antes de la ...

1 la respuesta

Análisis de la salida x86 generada por JIT en el contexto de volátiles

Estoy escribiendo esta publicación en relación conProfundo conocimiento de volátiles en Java [https://stackoverflow.com/questions/45133832/deep-understanding-of-volatile-in-java] public class Main { private int x; private volatile int g; public ...

2 la respuesta

¿Es posible que una tienda con memory_order_relaxed nunca llegue a otros hilos?

Supongamos que tengo un hiloAque escribe a unatomic_int x = 0;, utilizandox.store(1, std::memory_order_relaxed);. Sin ningún otro método de sincronización, ¿cuánto tiempo pasaría antes de que otros hilos puedan ...