當我運行我的程序,我看到下面的輸出 -線程啓動方法返回返回
Type something Hello Hello Hello
-
我的問題是爲什麼類型的東西聲明甚至可以打印? proc1.start()調用run方法,並且由於run方法中有一個無限循環,所以它永遠不會從run方法中出來。 Thread.sleep(100)是否會造成這種情況?有人可以解釋嗎?我明顯錯過了一些簡單的東西。下面是代碼 -
public class Processor extends Thread {
private boolean running = true;
public void run() {
try {
while (running) {
System.out.println("Hello");
Thread.sleep(100);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void shutdown() {
running = false;
}
public static void main(String[] args) {
Processor proc1 = new Processor();
proc1.start();
System.out.println("Type something");
Scanner scan = new Scanner(System.in);
scan.nextLine();
proc1.shutdown();
}
}
您的標題表達了您認爲錯誤的應該發生的事情,而不是實際發生的事情, – EJP