1. 程式人生 > >java join使用

java join使用

比如main是主執行緒,那麼如果在main裡面啟動了A執行緒的join方法,那麼主執行緒即等待A執行緒執行結束才執行。

主執行緒要是呼叫join方法,那麼該執行緒將一直等待。因為是自己等待自己。

 

 

join()方法還有帶超時限制的過載版本。 例如t.join(5000);則讓執行緒等待5000毫秒,如果超過這個時間,則停止等待,變為可執行狀態。

程式是網上收集的。

public class TestJoin {

    public static void main(String[] args) {

        MyThread2 t1 = new MyThread2("TestJoin");
        t1.start();
        try {
            t1.join();  //join()合併執行緒,子執行緒執行完之後,主執行緒才開始執行
        } catch (InterruptedException e) {
        }

        for (int i = 0; i < 10; i++) {
            System.out.println("I am Main Thread");
        }
    }
}


class MyThread2 extends Thread {

    MyThread2(String s) {
        super(s);
    }
    @Override
    public void run() {
        for (int i = 1; i <= 10; i++) {
            System.out.println("I am " + getName());
            try {
                sleep(1000); //暫停,每一秒輸出一次
            } catch (InterruptedException e) {
                return;
            }
        }
    }
}


程式執行結果:

I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread