我正在學習Java中的MULTITHREADING,我想知道爲什麼在下面的代碼中,當執行start方法以調用run方法時,子線程不會立即運行子線程?java多線程 - 子線程不會立即啓動
取而代之,執行start方法後,主線程繼續執行其代碼並開始打印「。」。它執行三次並且控制由子線程接管。子線程然後執行一次它的代碼並返回到主線程。然後主線程完成,然後子線程完成其執行。
我無法理解爲什麼會發生這種情況?
class MyThread implements Runnable {
String thrdName;
MyThread(String name) {
thrdName = name;
}
public void run() {
System.out.println(thrdName + " starting.");
for (int count = 0; count < 10; count++) {
System.out.println("In " + thrdName + ", count is " + count);
}
}
}
class UseThreads {
public static void main(String args[]) {
System.out.println("Main thread starting.");
MyThread mt = new MyThread("Child #1");
Thread newThrd = new Thread(mt);
newThrd.start();
for (int i = 0; i < 50; i++) {
System.out.print(".");
}
}
}
你是否理解併發與並行的區別? – oldrinb 2012-08-08 23:34:30
@veer ...尚未 – user547453 2012-08-08 23:39:56
@ user547453 +1:D – MadProgrammer 2012-08-08 23:45:06