Чтобы поток мог ввести метод foo
, он должен иметь блокировку для объекта (монитора), который содержит метод foo. Когда wait
выполняется, поток снимает блокировку на мониторе. Так что, если другой поток попытается выполнить foo и (скажем, он может получить блокировку), он выведет сообщение «Hello World»