Comment fonctionne la Synchronisation en Java?

J'ai un doute concernant Java de Synchronisation . Je veux savoir si j'ai trois méthodes Synchronisées dans ma classe et un fil acquiert un verrou sur une méthode synchronisée deux autres pourront être verrouillées ? Je pose cette question parce que je suis confondue avec l'instruction suivante .

Alors qu'un thread est à l'intérieur d'une méthode synchronisée d'un objet, tous les autres threads qui souhaitent exécuter cette méthode synchronisée ou de toute autre méthode synchronisée de l'objet devra attendre. Cette restriction ne s'applique pas à le thread qui a déjà de la serrure et de l'exécution d'une méthode synchronisée de l'objet. Une telle méthode peut appeler d'autres méthodes synchronisées de l'objet sans être bloqué. Le non-synchronisé méthodes de l'objet de cours peut être appelé à tout moment par n'importe quel thread

Quelle est la source de cette déclaration et quel est votre confusion ? Vous semblez le comprendre. Soyez prudent à propos de blocage lors de l'accès à une méthode synchronisée à partir d'un autre.
Re: "...deux autres pourront être verrouillées". Le thread en cours d'exécution qui a déjà la serrure ne sera pas empêché de l'appel d'une autre méthode synchronisée sur le même objet, cependant, toute autre thread sera bloqué (c'est à dire forcé d'attendre jusqu'à ce qu'ils sont, compte tenu de la serrure). Max a une bonne réponse qui en parle si vous êtes le verrouillage de l'objet lui-même (ce) ou d'une autre variable objet entièrement.
on peut comprendre les notions de base de la synchronisation à partir d'ici, dzone.com/articles/how-synchronization-works-in-java-part-1

OriginalL'auteur Raj | 2012-06-25