Je sais que l'utilisation de la synchroniser mot-clé avant une méthode apporte la synchronisation de l'objet.
C'est, 2 threads s'exécutant sur la même instance de l'objet seront synchronisés.
Cependant, depuis la synchronisation est au niveau de l'objet, 2 threads s'exécutant différentes instances de l'objet ne seront pas synchronisées. Donc, si nous avons une variable statique dans une classe java qui est appelée par la méthode, que l'on voudrait être synchronisés sur l'ensemble des instances de la classe.
Les deux instances sont en cours d'exécution dans les 2 threads différents.
Pouvons-nous obtenir une synchronisation de la manière suivante?
public class Test { private static int count = 0; private static final de l'Objet de verrouillage= new Object(); public synchronized void foo() { synchronisée(lock) { count++; } } }
Est-il vrai que, depuis, nous avons défini un objet de verrouillage qui est statique et nous utilisons le mot-clé synchronized pour que le verrouillage, l'statique varibale comte est maintenant synchronisés sur l'ensemble des instances de la classe de Test?