乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      (轉(zhuǎn))Java中join和yield的作用

       _小女子_ 2015-03-27
        原文:http://blog.csdn.net/reboot123/article/details/22589621
      本文來自 http://blog.csdn.net/liuxian13183/  ,引用必須注明出處!
       1、   A.join,在API中的解釋是,堵塞當(dāng)前線程B,直到A執(zhí)行完畢并死掉,再執(zhí)行B。

      用一個(gè)小例子來說明吧

      static class ThreadA extends Thread {
          @Override
          public void run() {
            // TODO Auto-generated method stub
            super.run();
            for (int i = 0; i < 10; i++) {
              System.out.println("ThreadA" + i);
            }
          }
        }
      
        static class ThreadB extends Thread {
          ThreadA a;
      
          public ThreadB(ThreadA a) {
            // TODO Auto-generated constructor stub
            this.a = a;
          }
      
          @Override
          public void run() {
            // TODO Auto-generated method stub
            super.run();
            System.out.println("ThreadB start");
            try {
              a.join();
            } catch (InterruptedException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }
            System.out.println("ThreadB end");
          }
        }
      
        public static void main(String[] args) {
          ThreadA a = new ThreadA();
          ThreadB b = new ThreadB(a);
          b.start();
          a.start();
        }
      執(zhí)行結(jié)果:
      ThreadB start
      ThreadA0
      ThreadA1
      ThreadA2
      ThreadA3
      ThreadA4
      ThreadA5
      ThreadA6
      ThreadA7
      ThreadA8
      ThreadA9
      ThreadB end
      首先b線程執(zhí)行,a線程join后,直接執(zhí)行完a,然后才執(zhí)行b,證實(shí)上述說法。

      2、A.yield,A讓出位置,給B執(zhí)行,B執(zhí)行結(jié)束A再執(zhí)行。跟join意思正好相反!

      static class ThreadA extends Thread {
          @Override
          public void run() {
            // TODO Auto-generated method stub
            super.run();
            for (int i = 0; i < 10; i++) {
              System.out.println("ThreadA " + i);
            }
          }
        }
      
        static class ThreadB extends Thread {
          ThreadA a;
      
          public ThreadB(ThreadA a) {
            // TODO Auto-generated constructor stub
            this.a = a;
          }
      
          @Override
          public void run() {
            // TODO Auto-generated method stub
            super.run();
            System.out.println("ThreadB start");
            try {
              for (int i = 0; i < 10; i++) {
                if(i==2){
                  a.yield();
                }
                System.out.println("ThreadB " + i);
              }
            } catch (Exception e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }
            System.out.println("ThreadB end");
          }
        }
      
        public static void main(String[] args) {
          ThreadA a = new ThreadA();
          ThreadB b = new ThreadB(a);
          b.start();
          a.start();
        }
      執(zhí)行結(jié)果:
      ThreadB start
      ThreadA 0
      ThreadB 0
      ThreadA 1
      ThreadB 1
      ThreadA 2
      ThreadB 2
      ThreadB 3
      ThreadB 4
      ThreadB 5
      ThreadB 6
      ThreadB 7
      ThreadB 8
      ThreadB 9
      ThreadB end
      ThreadA 3
      ThreadA 4
      ThreadA 5
      ThreadA 6
      ThreadA 7
      ThreadA 8
      ThreadA 9
      首先B執(zhí)行,然后A執(zhí)行;在B的循環(huán)中,i=2時(shí),A執(zhí)行yield;接著B執(zhí)行完,才輪到A執(zhí)行。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多