Ist das eine sichere Veröffentlichung des Objekts?

Ich habe einen Klassengegenstand

<code>class Item {
  public int count;
  public Item(int count) {
    this.count = count;
  }
}
</code>

Dann werde ich einen Verweis auf Item in einem Feld einer anderen Klasse einfügen

<code>class Holder {
  public Item item;
  public Holder() {
    item = new Item(50);
  }
}
</code>

Kann dasNeuer Gegenstand Objekt sicher veröffentlicht werden? Wenn nein, warum? Laut Java Concurrency in Practice wird das neue Item veröffentlichtohne vollständig aufgebaut zu sein, aber meiner Meinung nach ist der neue Gegenstand vollständig konstruiert: seinthis Der Verweis wird nicht ausgeblendet und der Verweis darauf und sein Status werden gleichzeitig veröffentlicht, sodass dem Consumer-Thread kein veralteter Wert angezeigt wird. Oder ist es das Sichtbarkeitsproblem. Ich kenne den Grund nicht genau.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage