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