<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 一、join 用于在某一個線程的執行過程中調用另一個線程執行,等到被調用的線程執行結束后,再繼續執行當前線程。 在線程t2的代碼中加入t1.join(),就是讓t1這個線程先運行完,讓t2這個線程暫時掛起不運行 ``` public static void main(String[] args) { Thread t1 = new Thread(() -> { System.out.println("線程1開始運行!"); for (int i = 0; i < 50; i++) { System.out.println("1打印:"+i); } System.out.println("線程1結束!"); }); Thread t2 = new Thread(() -> { System.out.println("線程2開始運行!"); for (int i = 0; i < 50; i++) { System.out.println("2打印:"+i); if(i == 10){ try { System.out.println("線程1加入到此線程!"); t1.join(); //在i==10時,讓線程1加入,先完成線程1的內容,在繼續當前內容 } catch (InterruptedException e) { e.printStackTrace(); } } } }); t1.start(); t2.start(); } ``` **需要注意的是,在t1未加入到t2的時候,這兩個線程是并發執行,而執行到t1.join時,就讓t1這個線程先運行完畢,此時只剩t2這個線程,執行完畢,程序結束** ## 二、yield yield是將當前線程的cpu時間塊讓給其他線程(注意,雖然這個線程讓出了自己的時間塊,但是有可能該線程會被再次選中) 引用他人博客的解釋,就是:yield關鍵字的作用是讓出當前線程的執行權,增加其他線程被選中的概率,提高線程的執行效率和公平性。 ``` public static void main(String[] args) { Thread t1 = new Thread(() -> { System.out.println("線程1開始運行!"); for (int i = 0; i < 50; i++) { if(i % 5 == 0) { System.out.println("讓位!"); Thread.yield(); } System.out.println("1打印:"+i); } System.out.println("線程1結束!"); }); Thread t2 = new Thread(() -> { System.out.println("線程2開始運行!"); for (int i = 0; i < 50; i++) { System.out.println("2打印:"+i); } }); t1.start(); t2.start(); } ``` ## 三、總結 join: 掛起當前線程,讓t1.join()這個t1線程先運行結束 yield:本來到這個線程執行了,但是執行了Thread.yield(),就讓這個占用cpu的線程處于就緒態,讓系統重新選擇一個線程占用cpu
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看