У меня есть программа, которая работает одновременно и у меня есть эта проблема, когда я хочу, чтобы остановить поток, но цикл/пока цикл не отменен один раз я когда-то я нажимаю войтиДля и While Loop
Если я возьмите петлю for
из цикла while
, программа фактически реагирует на ввод и завершает работу.
class MyNumber extends Thread {
private volatile boolean processing = true;
public void run() {
while (processing) {
// Once I take this for loop out(put // beside it like right now), the enter key to stop the program then does work.
//for(int i = 1; i<27; i++){
System.out.println("Letter " + "i");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// }
}
}
public void permSleep() {
processing = false;
}
}
public class LetterNumber {
public static void main(String[] args) {
MyNumber num1 = new MyNumber();
num1.start();
System.out.println("Hit enter to stop the Numbers!");
Scanner shutter1 = new Scanner(System.in);
shutter1.nextLine();
num1.permSleep();
}
}
Почему петля for
заставляют программу не остановки?
Btw, он не должен был говорить пока (обработка == true), но только пока (обработка). Кроме того, если цикл while не прерывается, один раз вводится что-то в консоли из-за вызова метода permSleep, который делает обработку переменной == false? – JavaNewb
Это собирается печатать «Letter i» раз в секунду, на неопределенный срок. –