国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java并發編程學習之線程的生命周期-join(四)

xavier / 1935人閱讀

摘要:定義等待該線程終止,比如線程調用了線程的,那么線程要等到線程執行完后,才可以繼續執行。

定義

等待該線程終止,比如A線程調用了B線程的join,那么A線程要等到B線程執行完后,才可以繼續執行。

示例
public class JoinDemo {
    static class JoinThread1 implements Runnable {
        Thread thread;

        public JoinThread1(Thread thread) {
            this.thread = thread;
        }

        @Override
        public void run() {
            System.out.println("thread1 start");
            try {
                thread.join();
                System.out.println("thread1 end");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    static class JoinThread2 implements Runnable {
        @Override
        public void run() {
            System.out.println("thread2 start");
            try {
                Thread.sleep(10000);
                System.out.println("thread2 end");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        JoinThread2 joinThread2 = new JoinThread2();
        Thread thread2 = new Thread(joinThread2);
        JoinThread1 joinThread1 = new JoinThread1(thread2);
        Thread thread1 = new Thread(joinThread1);

        thread1.start();
        thread2.start();
    }
}

運行結果如下:

線程1執行的時候,調用線程2的join,線程1不休眠,線程2休眠了10秒,從結果看出來,線程2執行完后,線程1才執行完。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/75216.html

相關文章

  • java并發編程習之線程生命周期(一)

    摘要:就緒狀態調用或者由阻塞狀態被解除時,進入就緒狀態,此時,只能表示線程可以運行了,但不代表已經運行了,需要等待的調度。死亡狀態當線程執行結束或者異常等,線程就會結束,進入死亡狀態。 流程圖 showImg(https://segmentfault.com/img/bVbuJ6f); 新建狀態 當用new創建一個線程后,線程就處于新建狀態,此時和其他普通java對象一樣,由JVM創建內存空...

    AndroidTraveler 評論0 收藏0
  • java并發編程習之線程生命周期-wait,notify,notifyall(六)

    摘要:不釋放持有的鎖,釋放鎖。在調用方法前,必須持有鎖,調用喚醒,也要持有鎖。休眠一定時間后,進入就緒狀態。這兩個都能被方法中斷當前狀態。用法方獲取鎖判斷條件,不滿足繼續滿足執行其他業務方獲取鎖改變條件通知為什么是而不是會一直循環,直到條件滿足。 sleep和wait sleep是Thread類的方法,wait是Object的方法。 sleep可以到處使用,wait必須是在同步方法或者代碼...

    Terry_Tai 評論0 收藏0
  • java并發編程習之線程生命周期-start(二)

    摘要:與執行方法,是用來啟動線程的,此時線程處于就緒狀態,獲得調度后運行方法。執行方法,相對于普通方法調用,在主線程調用。程序是順序執行的,執行完才會執行下面的程序。 start與run 執行start方法,是用來啟動線程的,此時線程處于就緒狀態,獲得調度后運行run方法。run方法執行結束,線程就結束。 執行run方法,相對于普通方法調用,在主線程調用。程序是順序執行的,執行完才會執行下...

    bigdevil_s 評論0 收藏0
  • java并發編程習之線程生命周期-sleep(五)

    摘要:在指定毫秒數內,讓正在執行的當前線程進入休眠期。示例運行結果如下結果可以看出,線程的兩次時間相差毫秒,的兩次時間相差毫秒,只影響自己的線程運行,不影響其他線程。 sleep 在指定毫秒數內,讓正在執行的當前線程進入休眠期。 示例 public class SleepDemo extends Thread { @Override public void run() { ...

    xi4oh4o 評論0 收藏0
  • java并發編程習之線程生命周期-yield(三)

    摘要:方法作用讓當前的線程狀態從運行狀態轉到就緒狀態,然后和其他就緒狀態的同相同優先級的其他線程競爭的執行權。也就是說,這個線程,還是有機會繼續再次執行的。 方法作用 讓當前的線程狀態從運行狀態轉到就緒狀態,然后和其他就緒狀態的同相同優先級的其他線程競爭CPU的執行權。也就是說,這個線程,還是有機會繼續再次執行的。 優先權 優先級范圍是1~10,數字越大,優先級越高,默認為5,但是由于操作系...

    Barry_Ng 評論0 收藏0

發表評論

0條評論

xavier

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<