Ciao,
On Wed, Mar 5, 2025 at 1:55 PM <
mick...@posteo.net> wrote:
> Ok, ho definitivamente compreso il meccanismo, indagando nelle
> implementazioni delle classi padre: il metodo che viene invocato, si
> appoggia su diversi membri static della classe stessa, quindi
> l'inizializzazione del membro INSTANCE = new Class1(); va fatta
> SUCCESSIVAMENTE all'inizializzazione dei membri di cui ha bisogno -
> sostanzialmente l'ultima cosa che viene fatta, prima della dichiarazione
> del costruttore.
Non so se il codice che hai postato qui è quello reale, ma di solito
il singleton è "static".
Questo significa che è inizializzato prima di qualsiasi non-static
field, prima dei costruttori, ecc.
Altrimenti non è un singleton, è solo una istanza in più con uno stato diverso.
Anche per l'inizializzazione della lista, devi stare attento a
sincronizzare l'accesso, altrimenti più threads possono inizializzarla
a valori diversi.
Insomma, stai attento :)
--
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless. Victoria Livschitz