Necesito ayuda para entender sincronizaciones-con relación. Cuanto más lo estoy leyendo y tratando de entender el ejemplo, más siento que no entiendo nada. A veces siento que aquí está, lo tengo, pero después de mirar otro ejemplo, me confundo nuevamente. Por favor, ayúdame a hacerlo bien.synchronisms-with, happens-before relation y acquire-release semántica
Se dice que una operación A se sincroniza: con una operación B si A es un almacén para alguna variable atómica m, con semántica de liberación, B es una carga de la misma variable m, con semántica de adquisición y B lee el valor almacenada por A. también se dice que una operación a sucede-antes de una operación B si
- a se realiza en el mismo hilo como B, y a es antes de B en el orden del programa, o
- a sincroniza -with B, o
- A sucede antes de otra operación C y C sucede antes de B
OK. Si miramos este ejemplo
thread0 realiza | Thread1 realiza
tienda de x (liberación) | cargar x (adquirir)
¿almacenar en x aquí sincronizar-con la carga de x? Si tenemos sincronizaciones -con relación aquí, entonces almacenar en x ocurre antes de cargar desde x, entonces todo lo que se secuencia antes de almacenar en x en el hilo 0 ocurre -antes de cargar desde x en el hilo 1. Esto significa que hay ordenamiento forzado aquí. ¿Es correcto? Pero en este caso, no entiendo qué significa "y B lee el valor almacenado por A", parte de la definición significa? Si el hilo 1 es más rápido que el hilo 0, puede leer el valor anterior. Entonces, ¿cuál es la relación aquí y hay alguna relación? Si no hay, ¿cómo puedo proporcionar esa relación?
Gracias de antemano.
un gran artículo está aquí http://preshing.com/20130823/the-synchronizes-with-relation/ – camino