48 votes

Si une méthode synchronisée appelle une autre méthode non synchronisée, y a-t-il un verrou sur la méthode non synchronisée

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) ?

1voto

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X