У меня есть Java-программа, которая имитирует автомобильную структуру. Я написал объяснение, но это было бы довольно сложно понять и не очень полезно, поэтому я просто задам «абстрактный» вопрос.
У меня есть бесконечный цикл, который вызывает метод "сейчас", который говорит фабрике построить новую машину.
while(true){
try{
Thread.sleep(500);
}catch (Exception e) {;}
fabric.now();
}
Внутри ткани есть 3 зоны; стадия 0, где создается кузов автомобиля, стадия 1, где автомобиль снабжен огнями, стадия 2, на которой я наложил бампер, и готово, то есть место, где размещены все готовые автомобили.
Когда метод now
вызывается в первый раз, он создает кузов автомобиля на стадии 0. Затем, когда он вызывается во второй раз, он перемещает первое тело на стадию 1, он помещает огни автомобиля (рисуя два круга) и это создает новый кузов. Так будет продолжаться до тех пор, пока автомобиль не будет готов, то есть когда он будет перемещен в готовую зону.
Вот моя проблема. Во второй раз, когда я вызываю метод now, он выполняет 3 вещи:
я. окрашивает кузов в 1 этап
II. окрашивает новый кузов в 0 этап
III. на 1-й ступени закрашивает огни над кузовом.
Я хочу отложить шаг (iii), чтобы люди могли видеть, что машина снабжена огнями. Если я использую wait, thread.sleep
или выполняю цикл, который занимает x миллисекунд, то с этого момента задерживается вся структура.
Я думаю, что мне нужно вывести шаг (iii) из нормального потока и сделать это отдельно, поэтому, когда я жду 350 миллисекунд, прежде чем покрасить свет, это не задерживает остальную часть процесса изготовления. (остальная часть картины).
Есть идеи?