免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
(轉(zhuǎn))Java中join和yield的作用
  原文:http://blog.csdn.net/reboot123/article/details/22589621
本文來自 http://blog.csdn.net/liuxian13183/  ,引用必須注明出處!
 1、   A.join,在API中的解釋是,堵塞當(dāng)前線程B,直到A執(zhí)行完畢并死掉,再執(zhí)行B。

用一個小例子來說明吧

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 startThreadA0ThreadA1ThreadA2ThreadA3ThreadA4ThreadA5ThreadA6ThreadA7ThreadA8ThreadA9ThreadB 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 startThreadA 0ThreadB 0ThreadA 1ThreadB 1ThreadA 2ThreadB 2ThreadB 3ThreadB 4ThreadB 5ThreadB 6ThreadB 7ThreadB 8ThreadB 9ThreadB endThreadA 3ThreadA 4ThreadA 5ThreadA 6ThreadA 7ThreadA 8ThreadA 9
首先B執(zhí)行,然后A執(zhí)行;在B的循環(huán)中,i=2時,A執(zhí)行yield;接著B執(zhí)行完,才輪到A執(zhí)行。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JAVA多線程之線程間的通信方式
synchronized 的用法,你知道多少?
java第一次作業(yè)
next()與nextLine區(qū)別
采用MQTT協(xié)議實(shí)現(xiàn)Android消息推送
java 線程池示例(自己實(shí)現(xiàn)的參考別人的代碼)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服