Можете ли вы объяснить мне процесс управления моей программой?
«Привет» запускается и проходит через цикл, пока не достигнет метода synchronized
«Пока» делает то же самое.
«Привет» - этосначала получить блокировку.
«Пока» блокирует ожидание блокировки.
«Hello» выполняет метод и снимает блокировку.
Теперь «пока» можно получитьблокировка и «Hello» сняли его
«Пока» теперь может выполнять метод и снимает блокировку как «Hello».
что я могу сделать, чтобы приветпосле выполнения метод переходит в заблокированный пул и также не оставляет блокировку на время ее получения
Удерживайте блокировку и не отпускайте ее, если хотите сохранить ее.
public void run() {
synchronized(ob); { // hold the lock the whole time
for (int i = 1; i <= 5; ++i) {
ob.pp (s);
try { Thread.sleep(1000); } catch (Exception e) {}
}
} // releases the lock here.
}