Articles of volátil

¿Interlocked.CompareExchange usa una barrera de memoria?

Estoy leyendo la publicación de Joe Duffy sobre lecturas y escrituras volátiles, y la puntualidad , y estoy tratando de comprender algo sobre la última muestra de código en la publicación: while (Interlocked.CompareExchange(ref m_state, 1, 0) != 0) ; m_state = 0; while (Interlocked.CompareExchange(ref m_state, 1, 0) != 0) ; m_state = 0; … Cuando […]

¿Qué tipo de optimizaciones previene ‘volátil’ en C ++?

Estaba buscando la palabra clave volatile y para qué sirve, y la respuesta que obtuve fue más o menos: Se usa para evitar que el comstackdor optimice el código ausente. Hubo algunos ejemplos, como cuando se sondeó el hardware mapeado en memoria: sin volatile el ciclo de sondeo se eliminaría ya que el comstackdor podría […]

¿Es un int volatile en Java thread-safe?

¿Es un int volatile en Java thread-safe? Es decir, ¿se puede leer y escribir de forma segura sin locking?

¿Es volátil caro?

Después de leer The JSR-133 Cookbook for Compiler Writers sobre la implementación de volátiles, especialmente la sección “Interacciones con las instrucciones atómicas”, supongo que al leer una variable volátil sin actualizarla se necesita una barrera LoadLoad o LoadStore. Más abajo, en la página, veo que LoadLoad y LoadStore no funcionan en las CPU X86. ¿Significa […]

Volátil en C ++ 11

En el estándar C ++ 11, el modelo de la máquina cambió de una máquina de un solo hilo a una máquina de múltiples hilos. ¿Esto significa que la típica static int x; void func() { x = 0; while (x == 0) {} } static int x; void func() { x = 0; while […]

Ilustrando el uso de la palabra clave volátil en C #

Me gustaría codificar un pequeño progtwig que ilustra visualmente el comportamiento de la palabra clave volatile . Idealmente, debería ser un progtwig que realiza el acceso concurrente a un campo estático no volátil y que obtiene un comportamiento incorrecto debido a eso. Agregar la palabra clave volátil en el mismo progtwig debería solucionar el problema. […]

Variable volátil en Java

Así que estoy leyendo este libro titulado Concurrencia de Java en la práctica y estoy atascado en esta única explicación que no puedo comprender sin un ejemplo. Esta es la cita: Cuando el hilo A escribe en una variable volátil y posteriormente el hilo B lee esa misma variable, los valores de todas las variables […]

¿Sucede antes relaciones con campos volátiles y bloques sincronizados en Java y su impacto en variables no volátiles?

Todavía soy bastante nuevo en el concepto de enhebrar y trato de entender más sobre él. Recientemente, me encontré con una publicación de blog sobre What Volatile Means en Java de Jeremy Manson, donde escribe: Cuando un hilo escribe en una variable volátil, y otro hilo ve esa escritura, el primer hilo le dice al […]

La necesidad de un modificador volátil en el locking controlado doble en .NET

Múltiples textos dicen que al implementar el locking con doble verificación en .NET, el campo que está bloqueando debe tener aplicado un modificador volátil. Pero, ¿por qué exactamente? Considerando el siguiente ejemplo: public sealed class Singleton { private static volatile Singleton instance; private static object syncRoot = new Object(); private Singleton() {} public static Singleton […]

¿Por qué existe la volatilidad?

¿Qué hace la palabra clave volatile ? En C ++, ¿qué problema soluciona? En mi caso, nunca lo había necesitado a sabiendas.