帮忙看一下,多线程join()的问题

public class Test{
  public static void main(String[] args){
    NewThread t1 = new NewThread("One");
    NewThread t2 = new NewThread("Two");
    NewThread t3 = new NewThread("Three");
    try{
      t1.join();
      t2.join();
      t3.join();
    }catch(Exception ex){
      ex.printStackTrace();
    }
    System.out.println("所有线程运行结束");
  }
}

class NewThread extends Thread{
  public NewThread(String ThreadName){
    Thread t = new Thread(this,ThreadName);
    t.start();
  }
  
  @Override
  public void run(){
    for(int i = 0; i < 5; i++){
      System.out.println(Thread.currentThread().getName()+":"+i);
    }
  }
}

“所有线程运行结束”这句话应该是在这三个线程运行结束后才打印的,但是于行了好几次都是随机的位置打印,好像那个join()方法没有起作用,不知道错在哪里了

予别她
浏览 727回答 1
1回答

慕的地2067727

你构造NewThread中 有个t.start()  好像已经开跑了   
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java