-2
此代碼根本不打印主線程。它所做的只是打印子線程。但是,如果我做了一個改變,即把這個語句「r.t.start()」從這個try塊中移出並放入它自己的try塊中。所以,當我這樣做時,線程就像他們應該的那樣工作。爲什麼會發生?Java中的線程混淆問題
public class prctc2 {
public static void main(String args[]) {
NewThread r = new NewThread();
try {
r.t.start();
for (int i = 1; i <= 5; i++) {
System.out.println(Thread.currentThread().getName() + i);
Thread.sleep(1000);
}
} catch (Exception e) {}
}
}
class NewThread implements Runnable {
Thread t;
NewThread() {
t = new Thread(this, "new one");
}
public void run() {
try {
for (int i = 1; i <= 5; i++) {
System.out.println(t + " " + i);
Thread.sleep(500);
}
}
catch (Exception e) {}
}
}
也許你不應該壓制你所有的例外。 – khelwood 2015-04-05 21:25:02