Я изучаю внутренности Java в течение некоторого времени. Мне любопытно узнать и понять, как потоки/блокировки происходят на Java.Внутренние темы Java
Итак, для доступа к синхронизированному методу или синхронизированному блоку поток должен сначала получить блокировку объекта. Итак, теперь, вот что мне нужно немного больше света.
Итак, всякий раз, когда поток получает блокировку объекта, увеличивает ли он значение семафора внутри? Если да, тогда давайте посмотрим на этот сценарий.
class ABC{
public void method_1(){
synchronized(xyz){
....
}
}
public void method_2(){
...
synchronized(xyz){
....
}
}
}
Так, говорят, что есть две темы: Threaad 1 и 2. Тема Предполагая, Резьба1 Введенные method_1 первый и поэтому приобрел замок на АБВ первым. И, скажем, Thread2 вводит метод_2 и пытается получить блокировку на xyz. Что случится? (Примите во внимание, что Thread2 будет заблокирован, так как он обнаружит, что значение семафора объекта> 0)
Сообщите мне, если мои рассуждения верны.
Да. Что за вопрос? Вы в основном повторяете определение того, как документируется блокировка для работы. –
Да, ваше описание верное на общем уровне. Есть что-то в этом описании, которое не имеет для вас смысла? –