Was bedeutet die intrinsische Sperre für eine Java-Klasse?

Um die Probleme und Lösungen für Parallelität in Java richtig zu verstehen, habe ich das offizielle Java-Tutorial durchgearbeitet. Auf einer der Seiten haben sie @ definieIntrinsic Locks und Synchronisation Verknüpfun. Auf dieser Seite heißt es:

Solange ein Thread eine intrinsische Sperre besitzt, kann kein anderer Thread dieselbe Sperre erhalten. Der andere Thread wird blockiert, wenn er versucht, die Sperre zu erlangen.

Auch erwähnen sie im AbschnittLocks In Synchronized Methods Das

Wenn ein Thread eine synchronisierte Methode aufruft, erhält er automatisch die interne Sperre für das Objekt dieser Methode und gibt sie frei, wenn die Methode zurückkehrt. Die Sperrfreigabe erfolgt auch dann, wenn die Rückgabe durch eine nicht abgefangene Ausnahme verursacht wurde.

Für mich bedeutet dies, dass ich, sobald ich eine synchronisierte Methode von einem der Threads aus aufrufe, über die intrinsische Sperre des Threads verfüge und seit

Intrinsische Sperren spielen in beiden Aspekten der Synchronisation eine Rolle: Sie erzwingen den exklusiven Zugriff auf den Status eines Objekts und stellen Vor-Zwischen-Beziehungen her, die für die Sichtbarkeit von entscheidender Bedeutung sind.

Wäre ein anderer Thread nicht in der Lage, eine andere synchronisierte Methode derselben Klasse aufzurufen? Wenn ja, dann ist der ganze Zweck, Methoden synchronisieren zu lassen, zunichte gemacht. Ist es nicht?

Antworten auf die Frage(14)

Ihre Antwort auf die Frage