Se si definisce il servizio in ambito Singleton nella configurazione di primavera, cosa accadrebbe se più di un utente tenta di accedervi (cioè come dipendenza iniettata nel controller) allo stesso tempo ? Dovrebbe causare qualche conflitto? O il contenitore IoC manterrà la chiamata successiva fino al completamento della prima? In tal caso dovrebbe rallentare le prestazioni in applicazioni di grandi dimensioni, il che non mi sembra giusto. Qualcuno potrebbe darmi una risposta corretta?Quando si accede a più istanze Spring Singleton contemporaneamente
BTW, come posso ricordare, se non è un singolo, il contenitore IoC raggrupperà poche istanze in base al numero di richieste. Qualcuno potrebbe confermarlo?
Grazie per la risposta. Quale sarebbe la migliore pratica per rendere sicuro il thread della classe Singleton? Non credo che utilizzare il blocco di sincronizzazione sarebbe una buona idea, in quanto è troppo costoso per le prestazioni. – Brolinuk
@Brolinuk A volte hai bisogno di blocchi sincronizzati, a volte no. Leggi [Concurrency in Practice] (http://www.javaconcurrencyinpractice.com/) per ulteriori riferimenti. Fondamentalmente: se non si dispone di uno stato mutabile, si è generalmente sicuri del thread. Se lo fai, avrai bisogno di un modo per sincronizzare l'accesso allo stato mutabile. C'è anche una [domanda SO pertinente] (http://stackoverflow.com/questions/1237980/java-5-concurrency-book-recommendations) –