Wednesday, November 28, 2007

Quando una classe java synchronyzed non è thread-safe

Oggi mi è arrivata la consueta mail della newsletter di TheServerSide.com ed era recensito un articolo che ha subito attirato la mia attenzione. L'articolo in questione parla di una delle più controverse questioni che presenta il linguaggio Java: la concorrenza e la sicurezza dei thread.
Essendo l'argomento di rilevante attenzione, specie nel mondo Enterprise in cui sicuramente ci troviamo alle prese con questioni di performance, mi interessa in modo particolare. L'articolo si trova qui. E' una buona guida al problema della concorrenza in Java e aiuta a rendersi ben conto di quello che succede a livello di codice JVM quando si itera una semplice Collection. Questo è da tenere bene a mente quando si sviluppa, speciamente in ambiente distribuito come è per la maggior parte delle applicazioni Enterprise basate su Application Server, perché spesso si crede che l'AS tenga conto di queste vulnerabilità della JDK, mentre non è sempre così. E' per questo che bisogna considerare, laddove il progetto lo richieda, l'uso del package java.util.concurrent che si prende cura di tutti i particolari legati al problema della concorrenza dei thread.

No comments: