Java多线程-join办法

当线程A履行到了B线程中的jion()办法时,A就会等待,等B线程都履行完时,A才会持续履行。

void:     join()    等待该线程终止。

假设有线程A,B和 C 线程,在B 线程中履行 A.join():指的是让 B 线程处于等待状况,剩下 A  和 C 履行,直到A线程履行停止(C能否停止没有影响),B线程才恢复履行.

void:     join(long millis)    等待该线程终止的时间最长为millis 毫秒。

JoinDemo.java假设有线程A,B和 C 线程,在B 线程中履行 A.join(int n):指的是让 B 线程处于等待状况,剩下 A  和 C 履行,然则此时 B 只等待 n 毫秒, n 毫秒以后不管A能否履行停止B线程都邑恢复履行.

class Demo implements Runnable {
   public void run() {
      for (int i = 1; i <= 50; i++)
        System.out.println(Thread.currentThread().getName() + "......." + i);
   }
}

class JoinDemo {
   public static void main(String[] args) throws Exception {
      Demo d = new Demo();
      Thread t1 = new Thread(d, "线程1:");
      Thread t2 = new Thread(d, "线程2:");
      t1.start();
      t1.join();// 此时主线程会放弃履行资格,t1取得履行资格,
      // 直到t1履行终了后main才能获得履行资格。
      t2.start();
      for (int i = 1; i <= 50; i++)
        System.out.println(Thread.currentThread().getName() + "......." + i);
   }
}