public class TestOne implements Runnable{
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
Thread t = new Thread(new TestOne());
t.start();
System.out.print("Started");
t.join();
System.out.print("Completed");
}
public void run(){
for(int i=0; i<4; i++){
System.out.print(i);
}
}
}这个代码的输出为什么是Started0123Completedt.join();在里面起到了什么作用,一直不太明白join函数的作用是什么?

解决方案 »

  1.   

    join:当前主线程等待你开启的线程t执行完毕
      

  2.   

    main啊,你不是在main中启动的线程t么。
      

  3.   

    main啊,你不是在main中启动的线程t么。似乎是明白了,但我不明白为什么不先输出0123呢?
      

  4.   

    main啊,你不是在main中启动的线程t么。似乎是明白了,但我不明白为什么不先输出0123呢?
    多线程,当然就是异步的了,你多运行几次,每次输出的结果可能都不一样,但是Completed肯定是最后输出
      

  5.   

    main啊,你不是在main中启动的线程t么。似乎是明白了,但我不明白为什么不先输出0123呢?
    多线程,当然就是异步的了,你多运行几次,每次输出的结果可能都不一样,但是Completed肯定是最后输出多谢
      

  6.   

    main啊,你不是在main中启动的线程t么。似乎是明白了,但我不明白为什么不先输出0123呢?
    多线程,当然就是异步的了,你多运行几次,每次输出的结果可能都不一样,但是Completed肯定是最后输出
    这个例子每次输出都是一样的,因为System.out.print是同步的
      

  7.   

    main啊,你不是在main中启动的线程t么。似乎是明白了,但我不明白为什么不先输出0123呢?
    多线程,当然就是异步的了,你多运行几次,每次输出的结果可能都不一样,但是Completed肯定是最后输出
    这个例子每次输出都是一样的,因为System.out.print是同步的
    我擦我看错了,自杀,不要理我