Что на самом деле означает встроенная блокировка для класса Java?
Чтобы правильно понять проблемы и решения для параллелизма в Java, я прошёл официальное руководство по Java. На одной из страниц они определилиВнутренние блокировки и синхронизация ссылка на сайт, На этой странице они говорят, что:
Пока потоку принадлежит внутренняя блокировка, никакой другой поток не может получить такую же блокировку. Другой поток заблокируется, когда попытается получить блокировку.
Также они упоминают в разделеБлокировки в синхронизированных методах тот:
Когда поток вызывает синхронизированный метод, он автоматически получает встроенную блокировку для объекта этого метода и освобождает ее при возврате метода. Снятие блокировки происходит, даже если возврат был вызван необработанным исключением.
Для меня это означает, что как только я вызову синхронизированный метод из одного из потоков, у меня будет внутренняя блокировка потока, и, поскольку
Внутренние блокировки играют роль в обоих аспектах синхронизации: обеспечение исключительного доступа к состоянию объекта и установление отношений «до и после», которые важны для видимости.
другой поток не сможет вызвать другой синхронизированный метод того же класса? Если да, тогда вся цель синхронизированных методов побеждена. Не так ли?