Les différentes portées de Synchronized ?
Bonjour à tous.
Je n'est jamais utilisé (explicitement) de threads jusqu'à maintenant, et je suis conscient que c'est une sacrée lacune.
Je me suis donc mis à étudier leur fonctionnement, mais un flou persiste sur le mot-clé Synchronized.
1èrement, je n'ai pas trouvé de récapitulatif sur les différentes portées du mot-clé :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| // 1er cas :
Synchronized Objet o;
// 2ème cas :
void uneMethode() {
//instructions
Synchronized (unObjet) {//instructions}
// insrtuctions
}
// 3ème cas :
Synchronized void autreMethode() {//instructions} |
Est-ce tout ??
Appliqué à une méthode (y compris Static), j'en ai compris le fonctionnement, la documentation ne manque pas à ce propos. Mais dans les autres cas, je n'ai pas trouvé grand chose, et ne sais pas sur quoi et comment s'applique le verrou...
Quelqu'un pourrait-il me dire où trouver un résumé de tout cela (ou m'en faire un ;) ) ?
Autre petite question, avec Java 5.0 et notamment le package java.util.concurrent, n'est-on pas appelé à se passer de Synchronized ?