我在一个复杂的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的输出,然后才收到主线程的消息。创建线程的想法是异步执行代码,但在这里我观察到明显的同步行为。我错过了什么吗?
提前感谢!