2
我在複雜的Java應用程序中面臨的問題歸結爲以下幾點:主線程不會繼續,直到子線程未完成,儘管我認爲它應該。其例示了問題的代碼如下所示:爲什麼主線程在繼續之前等待另一個線程完成?
public class ThreadTest {
static class MyThread extends Thread{
public void run(){
for(double i = 0; i<1; i+=0.01){
System.out.println(Math.pow(Math.PI,Math.E)*100.0*i-234.0);
}
}
}
public static void main(String[] args){
(new MyThread()).run();
System.out.println("main thread");
}
}
當運行該程序,我總是從MyThread的輸出的第一(獨立地多少步都在循環),然後我從得到的消息主線程。創建線程的想法是異步執行代碼,但在這裏我觀察到一個明確的同步行爲。我錯過了什麼?
提前致謝!
當你找到你喜歡的答案時,接受它是禮貌的。有時值得等待看看是否有更好的答案出現,但這取決於你。 – 2010-12-02 17:04:50
當然,非常感謝!實際上我開始和運行時感到困惑。 – Tim 2010-12-03 09:35:56