Thread Join()的用法
Java Thread类有个 join() 方法,先前一直不知道是怎么用的,直到看到这篇文章。http://auguslee.iteye.com/blog/1292203
Java Thread中, join() 方法主要是让调用该方法的thread完成run方法里面的东西后, 再执行join()方法后面的代码。示例:
ThreadTesterB在ThreadTesterA.Join() 被调用后被阻塞,直到 ThreadTesterA执行完毕才继续执行。
- 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()方法,直到t1的计数任务结束,才轮到t2启动,然后t2也开始计数任务。可以看到,实例中,两个线程就按着严格的顺序来执行了。
如果t2的执行需要依赖于t1中的完整数据的时候,这种方法就可以很好的确保两个线程的同步性。
转载于:https://www.cnblogs.com/exmyth/p/4875934.html
Thread Join()的用法相关推荐
- java thread join()_Java Thread join() 的用法
Java Thread中, join() 方法是让调用该方法的主线程执行run()时暂时卡住,等run()执行完成后, 主线程再调用执行join()后面的代码.示例: class ThreadTest ...
- python threading join_Python中threading模块join函数用法实例分析
本文实例讲述了Python中threading模块join函数用法.分享给大家供大家参考.具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后joi ...
- Java Thread.join()详解
一.使用方式. join是Thread类的一个方法,启动线程后直接调用,例如: Thread t = new AThread(); t.start(); t.join(); 二.为什么要用joi ...
- java threas.jion_Java Thread.join详解
使用方法 Thread t = new ThreadA(); t.start(); t.join(); 为什么要用 join() 方法 在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的 ...
- 浅析 Java Thread.join()
一.在研究join的用法之前,先明确两件事情. 1.join方法定义在Thread类中,则调用者必须是一个线程, 例如: Thread t = new CustomThread();//这里一般是自定 ...
- C#,JAVA各版本之Thread.join()详解
join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方 ...
- python线程创建对象_Python线程下thread对象的用法介绍(附实例)
本篇文章给大家带来的内容是关于Python线程下thread对象的用法介绍(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Thread对象 Thread类用于表示单独的控制 ...
- Thread.join(), CountDownLatch、CyclicBarrier和 Semaphore区别,联系及应用
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法, 由于 ...
- java join的用法
join的用法,先看几个例子在说. 程序1: public class ThreadTest implements Runnable { public static int a = 0; publi ...
最新文章
- 中国治理蝗灾是生物防治的成就,根本不是靠鸡靠鸭靠吃货换来的!
- .java生成dex文件
- 抱抱星英语Antony:不要用互联网思维做教育 | MCtalk教育访谈摘录
- pyqt5讲解13:图形与特效,设置窗口大小
- 手把手教你建网站--程序小白适用篇
- 一条insert语句导致的性能问题分析(一)
- 了解 sourceMap 配置
- 你必须了解的基础的 Linux 网络命令
- python--List extend()方法
- 智慧城管系统提高城市综合管理水平
- 3000字神经网络论文
- 百旺最新服务器地址,百旺金赋安装与使用教程
- android怎么开启wifi热点,android 开启wifi热点api
- STM32使用M/T法检测单路脉冲
- 内部存储器——③主存储器
- 关于karabiner的设置
- 美剧字幕组长讲述她如何练听力的
- EXCELL XLToolbox科研作图插件
- 随鼠标滚轮缩小和放大图片
- Android酷炫实用的开源框架(UI框架),35岁以上程序员求职没市场
热门文章
- Java开发者 IntelliJ IDEA 转换 VScode 时的优缺点
- ubuntu libapache2-mod-php5,ubuntu安装apache2 mysql5 php5
- 浅析企业网站从何开始了解百度蜘蛛?
- linux c 删除文件,Linux C ftruncate 函数清空文件注意事项(要使用 lseek 重置偏移量)...
- java try catch嵌套_try catch里面try catch嵌套
- 华为DUA-AL00真机android studio识别不出
- Ubuntu通过apt-get安装指定版本和查询指定软件有多少个版本
- vim 按照字段排序文件
- go语言笔记——append是内置的函数!!!new是一个函数!!!调试可以使用闭包,本质上是print调试,尼玛!...
- python 生成时间序列