Java Thread中, join() 方法是让调用该方法的主线程执行run()时暂时卡住,等run()执行完成后, 主线程再调用执行join()后面的代码。示例:

class ThreadTesterA implements Runnable {

private int counter;

@Override

public void run() {

while (counter <= 10) {

System.out.print("Counter = " + counter + " ");

counter++;

}

System.out.println();

}

}

class ThreadTesterB implements Runnable {

private int i;

@Override

public void run() {

while (i <= 10) {

System.out.print("i = " + i + " ");

i++;

}

System.out.println();

}

}

public class ThreadTester {

public static void main(String[] args) throws InterruptedException {

Thread t1 = new Thread(new ThreadTesterA());

Thread t2 = new Thread(new ThreadTesterB());

t1.start();

t1.join(); // wait t1 to be finished

t2.start();

t2.join(); // in this program, this may be removed

}

}

如果去掉t1.join()这个语句过后, 输出的顺序是乱的, 加上这个语句后, 就会按照顺序输出,  从某种意义上说实现了同步。

java thread join()_Java Thread join() 的用法相关推荐

  1. java 手动线程调度_Java Thread 多线程 操作线程

    5.线程的创建和启动 A.继承Thread类或实现Runnable接口,重写或实现run方法,run方法代表线程要完成的任务 B.创建Thread子类或是Runnable的实现类,即创建的线程对象:不 ...

  2. java stl分解_Java Thread 之間 記憶體空間分析

    Java Thread 之間 記憶體空間分析 SimpleThread.java import com.abc.ChirpControllerDevice; public class SimpleTh ...

  3. java synchronized 使用_Java中Synchronized的用法

    synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码 ...

  4. java synchronized静态_Java中Synchronized的用法(简单介绍)

    简单介绍 synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调 ...

  5. java thread 线程_Java Thread类简述

    今天我们来看下java.lang.Thread这个类. 在学习Thread类之前,先看下线程相关知识:线程的几种状态.上下文切换,然后介绍Thread类中的方法的具体使用. 1.线程的状态 线程从创建 ...

  6. java thread yield()_Java Thread yield()方法

    Java Thread yield()方法 java.lang.Thread.yield() 方法使当前执行的线程对象来暂停并允许其他线程执行. 1 语法 public static void yie ...

  7. java sleep 循环_java – Thread.sleep()在while循环中

    我注意到NetBeans在我的Java代码中的while循环中警告我关于使用Thread.sleep(),所以我已经对此进行了一些研究.看起来,主要的问题是性能之一,当您的同步状态可能会在计数器仍然处 ...

  8. java volatile实例_Java的Volatile实例用法及讲解

    Java的Volatile实例用法及讲解 发布时间:2020-10-03 12:01:58 来源:脚本之家 阅读:88 作者:konami 在原子性.可见性.有序性中,volatile关键字主要在可见 ...

  9. java 线程间_Java:线程间的用法不同。

    周围有很多成语 InterruptedException 但问题是关于显式检查中断状态. 我的理解是 isInterrupted (实例方法)不应主要用于日志记录和调试等.它只提供给定线程上标志的快照 ...

最新文章

  1. Science:语言可能并不是推理能力所必需的
  2. spring security3.x学习(12)_remember me
  3. shell变量,管道符,作业控制,shell变量,以及变量配置文件
  4. 作业一 郝树伟 1101210664
  5. http请求curl
  6. DeathRansom:一款教育目的的Python勒索软件开发平台
  7. 选择适合自己的 OLAP 引擎,干货
  8. Go泛型草案设计简明指南
  9. libreoffice使用_使用LibreOffice Calc管理您的财务
  10. 项目质量管理--如何保证项目的质量
  11. 蓝桥杯单片机:模块代码
  12. echarts 引用地图的json
  13. 山西省职业技能鉴定计算机操作员(中级工)理论知识试卷,山西省职业技能鉴定统一试卷 中级...
  14. html所有标签大全wps文件,html所有标签及其作用说明.wps
  15. 鉴源实验室丨汽车网络安全需求分析方法综述
  16. vantUI弹出框和微信小程序的究极大坑
  17. 无网卡驱动,电脑可以用Usb线联网
  18. Docker managed volume
  19. Android 输入法显示图标
  20. 剑指offer_递归与循环---跳台阶

热门文章

  1. Project Honolulu 正式版发布为 Windows Admin Center
  2. ASP.NET Core Web API下事件驱动型架构的实现(二):事件处理器中对象生命周期的管理
  3. spring cloud+dotnet core搭建微服务架构:配置中心(四)
  4. 在ASP.NET Core中使用百度在线编辑器UEditor
  5. .NET Core 系列5 :使用 Nuget打包类库
  6. Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器
  7. [转]Xdebug----Failed loading
  8. Landsat中国西北地区行列号Shapefile图层对照(附行列号Shapefile下载)
  9. LeetCode之Reverse String
  10. 链表之打印两个有序链表的公共部分