Я имею в виду пример производитель-потребитель от этого siteКак ждать перезагрузки замка?
В обоих производителей и потребителей кода, ждать обернута внутри петли, которая INTURN обернутой внутри синхронизированной блока.
Но один раз wait возвращается, то есть из цикла while, я не понимаю, как поток восстанавливает блокировку, потому что добавление/удаление элемента из очереди все еще находится внутри синхронизированного блока.
Также я считаю, что нам может потребоваться два разных замка, то есть один для потребителя и один для производителя вместо блокировки всей очереди. Потому что я чувствую, что в любой момент потребитель или производитель могут работать в очереди.
Пожалуйста, дайте мне знать, если мое понимание неверно. Также будет здорово, если кто-то может предоставить пример с двумя разными замками.
'wait' освобождает блокировку, ждет, когда кто-то вызовет' notify() ', а затем присоединяется к громовому стаду, чтобы его снова получить. Все это происходит внутри страны. Вам не нужно знать, как это происходит, вам нужно только знать, что это происходит. Ваш второй вопрос не в тему. – EJP