黑马程序员技术交流社区

标题: Thread类中的join()方法 [打印本页]

作者: 画了一个圈儿    时间: 2014-8-18 09:44
标题: Thread类中的join()方法
本帖最后由 画了一个圈儿 于 2014-8-18 09:47 编辑

join()方法的作用:临时加入线程执行
  1. class JoinDemo
  2. {
  3.         public static void main(String[] args) throws Exception
  4.         {
  5.                 Join jo = new Join();
  6.                 Thread t1 = new Thread(jo);
  7.                 Thread t2 = new Thread(jo);               
  8.                 t1.start();
  9.                 t1.join();                //主线程将CPU执行权交给线程t1
  10.                                              //t1运行结束后再将执行术交还给主线程
  11.                 t2.start();
  12.                 ......               
  13.         }
  14. }
复制代码



如上代码所示,仅开启一个线程t1,之后就调用t1. join()时:线程t1会得到CPU执行权,t1执行结束后,再将执行权交还给主线程,t2开启后,主线程与t2交替执行。

  1. class JoinDemo
  2. {
  3.         public static void main(String[] args) throws Exception
  4.         {
  5.                 Join jo = new Join();
  6.                 Thread t1 = new Thread(jo);
  7.                 Thread t2 = new Thread(jo);               
  8.                 t1.start();
  9.                 t2.start();
  10.                 t1.join();                //主线程将CPU执行权交给线程t1
  11.                                              //此时t1、t2都有执行资格,它们会随机交替执行
  12.                                              //t1运行结束后再将执行术交还给主线程
  13.                 ......               
  14.         }
  15. }
复制代码
如果t1t2都开启,再调用t1. join():主线程将执行权交给t1,此时由于t1、t2都有执行资格,则两线程会随机交替执行。当t1运行结束后,将执行权交还给主线程。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2