Java Thread类有个 join() 方法,先前一直不知道是怎么用的,直到看到这篇文章。http://auguslee.iteye.com/blog/1292203

Java Thread中, join() 方法主要是让调用该方法的thread完成run方法里面的东西后, 再执行join()方法后面的代码。示例:

ThreadTesterBThreadTesterA.Join() 被调用后被阻塞,直到 ThreadTesterA执行完毕才继续执行。

[java] view plaincopy
  1. class ThreadTesterA implements Runnable {
  2. private int counter;
  3. @Override
  4. public void run() {
  5. while (counter <= 10) {
  6. System.out.print("Counter = " + counter + " ");
  7. counter++;
  8. }
  9. System.out.println();
  10. }
  11. }
  12. class ThreadTesterB implements Runnable {
  13. private int i;
  14. @Override
  15. public void run() {
  16. while (i <= 10) {
  17. System.out.print("i = " + i + " ");
  18. i++;
  19. }
  20. System.out.println();
  21. }
  22. }
  23. public class ThreadTester {
  24. public static void main(String[] args) throws InterruptedException {
  25. Thread t1 = new Thread(new ThreadTesterA());
  26. Thread t2 = new Thread(new ThreadTesterB());
  27. t1.start();
  28. t1.join(); // wait t1 to be finished
  29. t2.start();
  30. t2.join(); // in this program, this may be removed
  31. }
  32. }

t1启动后,调用join()方法,直到t1的计数任务结束,才轮到t2启动,然后t2也开始计数任务。可以看到,实例中,两个线程就按着严格的顺序来执行了。

如果t2的执行需要依赖于t1中的完整数据的时候,这种方法就可以很好的确保两个线程的同步性。

转载于:https://www.cnblogs.com/exmyth/p/4875934.html

Thread Join()的用法相关推荐

  1. java thread join()_Java Thread join() 的用法

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

  2. python threading join_Python中threading模块join函数用法实例分析

    本文实例讲述了Python中threading模块join函数用法.分享给大家供大家参考.具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后joi ...

  3. Java Thread.join()详解

     一.使用方式. join是Thread类的一个方法,启动线程后直接调用,例如: Thread t = new AThread(); t.start(); t.join(); 二.为什么要用joi ...

  4. java threas.jion_Java Thread.join详解

    使用方法 Thread t = new ThreadA(); t.start(); t.join(); 为什么要用 join() 方法 在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的 ...

  5. 浅析 Java Thread.join()

    一.在研究join的用法之前,先明确两件事情. 1.join方法定义在Thread类中,则调用者必须是一个线程, 例如: Thread t = new CustomThread();//这里一般是自定 ...

  6. C#,JAVA各版本之Thread.join()详解

    join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方 ...

  7. python线程创建对象_Python线程下thread对象的用法介绍(附实例)

    本篇文章给大家带来的内容是关于Python线程下thread对象的用法介绍(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Thread对象 Thread类用于表示单独的控制 ...

  8. Thread.join(), CountDownLatch、CyclicBarrier和 Semaphore区别,联系及应用

    在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法, 由于 ...

  9. java join的用法

    join的用法,先看几个例子在说. 程序1: public class ThreadTest implements Runnable { public static int a = 0;  publi ...

最新文章

  1. 中国治理蝗灾是生物防治的成就,根本不是靠鸡靠鸭靠吃货换来的!
  2. .java生成dex文件
  3. 抱抱星英语Antony:不要用互联网思维做教育 | MCtalk教育访谈摘录
  4. pyqt5讲解13:图形与特效,设置窗口大小
  5. 手把手教你建网站--程序小白适用篇
  6. 一条insert语句导致的性能问题分析(一)
  7. 了解 sourceMap 配置
  8. 你必须了解的基础的 Linux 网络命令
  9. python--List extend()方法
  10. 智慧城管系统提高城市综合管理水平
  11. 3000字神经网络论文
  12. 百旺最新服务器地址,百旺金赋安装与使用教程
  13. android怎么开启wifi热点,android 开启wifi热点api
  14. STM32使用M/T法检测单路脉冲
  15. 内部存储器——③主存储器
  16. 关于karabiner的设置
  17. 美剧字幕组长讲述她如何练听力的
  18. EXCELL XLToolbox科研作图插件
  19. 随鼠标滚轮缩小和放大图片
  20. Android酷炫实用的开源框架(UI框架),35岁以上程序员求职没市场

热门文章

  1. Java开发者 IntelliJ IDEA 转换 VScode 时的优缺点
  2. ubuntu libapache2-mod-php5,ubuntu安装apache2 mysql5 php5
  3. 浅析企业网站从何开始了解百度蜘蛛?
  4. linux c 删除文件,Linux C ftruncate 函数清空文件注意事项(要使用 lseek 重置偏移量)...
  5. java try catch嵌套_try catch里面try catch嵌套
  6. 华为DUA-AL00真机android studio识别不出
  7. Ubuntu通过apt-get安装指定版本和查询指定软件有多少个版本
  8. vim 按照字段排序文件
  9. go语言笔记——append是内置的函数!!!new是一个函数!!!调试可以使用闭包,本质上是print调试,尼玛!...
  10. python 生成时间序列