Темы: Ожидание занято - пустой цикл while [duplicate]
На этот вопрос уже есть ответ здесь:
Это голод? 2 ответаВо время наших уроков в университете мы узнали оThreads
и использовалОжидание занято метод для примераCar
в ожиданииTrafficLight
, Для этой задачи мы построим три класса:
TrafficLight (implements Runnable)
Car (implements Runnable)
Main
В нашемMain
класс мы начинаем дваThread
с, один изCar
и один изTrafficLight
,Car
имеет логический атрибутhasToWait
,run()
Метод в этом классе работает так, что он работает черезwhile
цикл до тех пор, покаhasToWait == true
, Чтобы изменить это, у нас естьnotifyCar()
метод вCar
класс, который используетсяTrafficLight
,run()
метод вTrafficLight
проходит черезThread.sleep()
смоделировать определенное время ожидания.
У меня все хорошо работаетно со временем у меня возникли серьезные проблемы. Покаwhile
петля вCar
класс пуст. Когда я положил вSystem.out.println()
- которыйне пусто, работает. Но если Syso пуст, результатом не будет отображение текстаRun
метод. Также это 'работает, когдаThread.sleep()
вTrafficLight
является0
, Чем работает с пустымwhile
петля.
Вот мой код:
Car.java:package trafficlight;
public class Car implements Runnable {
private boolean hasToWait = true;
public void run() {
this.crossTrafficLight();
}
public void crossTrafficLight() {
while(hasToWait){ for(int i = 0; i