Pregunta simple: ¿el modelo de memoria/sincronización de Java garantiza las escrituras del puntero atómico? Es decir, si tenemos hilos de la competencia:¿El puntero de Java escribe atómico?
String shared;
thread1()
{
shared = "a";
}
thread2()
{
shared = "hello world";
}
comenzó al mismo tiempo, se shared
siempre garantiza que sea null
, "a"
o "hello world"
?
Tenga en cuenta que, en general, el objeto al que hace referencia la referencia puede no estar completamente inicializado. La implementación normal de 'String' debería estar bien, aunque la especificación no es buena en este tipo de cosas. También hay pocos preciosos tipos realmente inmutables. Si intentas confiar en este tipo de cosas, probablemente estés haciendo algo mal (aunque esa no es una buena razón para no entender por qué). –