<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### CyclicBarrier\(循環柵欄\) CyclicBarrier可以使一定數量的參與方反復地在柵欄位置匯集 CyclicBarrier初始化的時候,設置一個屏障數。線程調用await\(\)方法的時候,這個線程就會被阻塞,當調用await\(\)的線程數量到達屏障數的時候,主線程就會取消所有被阻塞線程的狀態 示例 ``` /** * 三個人一起爬山,達到第一集合點后必須等到所有人員到齊后再開始往第二集合點進發 */ public class Appliction { private static final int NUM = 3; public static void main(String[] args) { CyclicBarrier cyclicBarrier = new CyclicBarrier(NUM); String phaseName = "phase one"; for (int i = 0; i < NUM; i++) { new Thread(new PhaseTask(phaseName, cyclicBarrier)).start(); } } } class PhaseTask implements Runnable { private String phaseName; private CyclicBarrier cyclicBarrier; public PhaseTask(String phaseName, CyclicBarrier cyclicBarrier) { this.phaseName = phaseName; this.cyclicBarrier = cyclicBarrier; } @Override public void run() { sleep(); System.err.println(Thread.currentThread().getName() + "到達第一個集合點"); waitFor(); sleep(); System.err.println(Thread.currentThread().getName() + "到達第二個集合點"); waitFor(); } private void sleep() { int time = new Random().nextInt(10); if (time > 0) { try { TimeUnit.SECONDS.sleep(time); } catch (InterruptedException e) { e.printStackTrace(); } } } private void waitFor() { try { cyclicBarrier.await(); } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } } } ```
                  <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>

                              哎呀哎呀视频在线观看