que tienen un elemento de la clase¿Es esta una publicación segura del objeto?
class Item {
public int count;
public Item(int count) {
this.count = count;
}
}
A continuación, voy a poner una referencia al artículo en un campo de otra clase
class Holder {
public Item item;
public Holder() {
item = new Item(50);
}
}
Puede este nuevo objeto artículo se publicará de forma segura? Si no, ¿por qué? Según Java Concurrency in Practice, el nuevo artículo se publica sin estar completamente construido, pero en mi opinión el nuevo ítem está completamente construido: su referencia this
no se escapa y la referencia a este y su estado se publica al mismo hora, por lo que el hilo del consumidor no verá un valor obsoleto. ¿O es el problema de visibilidad? No sé exactamente el motivo.
Interesante artículo de DW sobre el tema que explora muchos de los problemas relacionados con la sincronización: http://www.ibm.com/developerworks/java/library/j-jtp0618/index.html – maksimov
Lo siento mucho, lo he olvidado! – ohyeahchenzai