En Java, si une méthode synchronisée contient un appel à une méthode non synchronisée, une autre méthode peut-elle toujours accéder à la méthode non synchronisée en même temps ? Fondamentalement, ce que je demande, c'est que tout dans la méthode synchronisée est verrouillé (y compris les appels à d'autres méthodes synchronisées) ?
Réponse
Trop de publicités?
yshavit
Points
15028
Le verrou appartient au thread , pas à la méthode (ou plus précisément à son cadre de pile). Il se trouve que si vous avez une méthode synchronisée, vous avez la garantie que le thread possédera le verrou avant le début du corps de la méthode et le libérera après.
Un autre thread peut toujours appeler la deuxième méthode non synchronisée. Une méthode non synchronisée peut être appelée par n'importe quel thread à tout moment.