join方法: 当某个线程要等待另一个线程执行结束后才能继续执行时,使用join方法。

public class DinnerThread {public static void main(String[] args){DinnerThread thread = new DinnerThread();Dinner fatherThread = thread.new Dinner();Thread myThread = new Thread(fatherThread);myThread.start();}public class Dinner implements Runnable{public void run() {System.out.println("去饭店吃饭");System.out.println("点完菜让饭店做菜:");Thread restaurantThread = new Thread(new RestaurantThread());restaurantThread.start();try {restaurantThread.join();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("开始吃饭");  }}public class RestaurantThread implements Runnable{public void run() {System.out.println("饭店开始做菜");for(int i=0;i<10;i++){System.out.println("饭店做菜("+(i+1)+")...");try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}System.out.println("饭店上菜");}}
}

 打印结果如下:

去饭店吃饭
点完菜让饭店做菜:
饭店开始做菜
饭店做菜(1)...
饭店做菜(2)...
饭店做菜(3)...
饭店做菜(4)...
饭店做菜(5)...
饭店做菜(6)...
饭店做菜(7)...
饭店做菜(8)...
饭店做菜(9)...
饭店做菜(10)...
饭店上菜
开始吃饭

JAVA 线程Join相关推荐

  1. java线程join方法

    java线程join方法 1.join方法 ​ join方法的作用是进行线程插队,也就是说调用了join方法的线程相对于调用它的上级线程拥有跟高的执行权.调用join方法的线程的上级线程必须等待调用j ...

  2. java线程join方法会释放锁吗

    java线程join方法会释放锁吗,虽然join底层使用wait,wait是释放锁的 wait()和join()的调用方的区别: object.wait()和thread.join() join()的 ...

  3. java线程——join

    A.join()等待当前线程A运行结束. A.join(millis) 当前线程最多等待A时间millis 原理 join() 调用join(0),即一直等待. 当前线程调用之后,会从RUNNABLE ...

  4. Java线程状态及 wait、sleep、join、interrupt、yield等的区别

    Java中的线程状态(详见Java线程状态及转换-MarchOn): wait:Object类的实例方法,释放CPU执行权,进入等待状态,直到  被中断.被拥有该对象锁的线程唤醒(notify或not ...

  5. java线程 yield_Java线程中yield与join方法的区别

    长期以来,多线程问题颇为受到面试官的青睐.虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用.之前,我讨论了一个w ...

  6. java线程中yield()和join()的区别

    多线程在面试中是非常受欢饮的题目,我个人认为我们很少有机会能够真正的用到复杂的多线程(我在7年前使用过一次),熟悉这些概念能够增加你的信心,先前,我已经讨论了一个相似的问题,wait()和sleep( ...

  7. Java线程详解:wait、notify、notifyAll、join

    线程的概念 线程是进程的子任务,一个进程可以创建多个线程,线程不拥有系统资源,但是线程可以共享进程的资源,而线程自己也有一块独立的小块空间:包括堆栈,程序计数器和局部变量. 线程是CPU调度和分派的基 ...

  8. java 线程方法join的简单总结

    虽然关于讨论线程join方法的博客已经很多了,不过个人感觉挺多都讨论得不够全面,所以我觉得有必要对其进行一个全面的总结. 一.作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间 ...

  9. java线程安全总结 - 1 (转载)

    原文地址:http://www.jameswxx.com/java/java%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%80%BB%E7%BB%93/ 最近想将ja ...

最新文章

  1. arcgisengine计算线要素总长度_弱电监控工程报价清单中,线材及辅材该如何计算?...
  2. VS2019安装Image Watch与失败解决方法
  3. 线程里面添加参数,并解决多个参数问题[原创]
  4. 深度学习如何入门?怎么入门机器/深度学习?
  5. Windows Phone 7 浏览器打开新窗口问题
  6. 【数据结构与算法】之深入解析“修剪二叉搜索树”的求解思路与算法示例
  7. 单例模式的八种写法比较
  8. 优雅的在终端中编写Python
  9. 算法高级(6)-共识(Raft)算法
  10. VBS中Sub与Function的区别[资料]
  11. Linux下的防火墙
  12. java rce漏洞原理_JXBrowser JavaScript-Java bridge 中的RCE漏洞
  13. 用Windows自带图片查看器查看图片的dpi分辨率大小
  14. 帆软报表参数传给网络报表_报表开发工具FineReport的使用: 程序网络报表
  15. 坚持#第17天~回忆重装系统
  16. 我卖掉北京500万的房产,在老家生活的这两年……
  17. (OC) interface
  18. 3dmax 2014加载panda3d插件失败
  19. 怎么将abaqus的数据导出_abaqus系列之二维图形导出
  20. [node]nvs使用的注意事项

热门文章

  1. 拿下 Google 实习 offer,19 岁的程序媛成长之路!
  2. mysql为int类型的字段php取出来之后为何变为string类型?
  3. 用django将数据从数据库提出并分页展示
  4. AI2XAML's Bug(sequel)
  5. rsyslog的学习
  6. jQuery扩展---$.extend和$.fn.extend
  7. 《电子基础与维修工具核心教程》——2.6 节点分压原理
  8. 线程间操作无效: 从不是创建控件的线程访问它
  9. 免费资源:Typicons-免费图标字体
  10. DLL version issue and SQL Parameters Issue