Задачу решил правильно, но ход программы понял не до конца.
когда класс Producer вызывает метод put и передает в него число, в самом методе put (класса TransferObject) ведь первые строчки это пока переменная isValuePresent false метод ждет, а кто же её тогда изменит на true что бы она перестала ждать? или порядок выполнения метода для JVM не по порядку, описанному в методе?
public synchronized void put(int value) throws InterruptedException {
while (isValuePresent) {
wait(); }
this.value = value;
isValuePresent = true;
notifyAll();
System.out.println("Put: " + value);
}
Майкл Мэдсен
51 уровень
Подскажите
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Buenos
9 августа 2022, 21:31
Ждет она пока isValuePresent == true. На false ее меняет метод get.
0