`

Java_Thread_join()

    博客分类:
  • Java
 
阅读更多

MSDN:Blocks the calling thread until a thread terminates

1. 什么是 the calling thread?

2. 什么是 a thread?

 

运行一个程序,即开启了一个进程和至少一个线程,干活的是线程而非进程!the calling thread 我们可以认为是MainThread(或者调用线程的线程,是不是有点绕?呵呵),a thread 我们就认为是被调用的线程。

最后,我们可以这样翻译MSDN:当 a thread 调用Join方法的时候,MainThread 就被停止执行,直到 a thread 线程执行完毕。

 

下面是测试代码:

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()这个语句过后, 输出的顺序是乱的, 加上这个语句过后, 就会按照顺序输出,  从某种意义上说实现了同步。

 

ref: http://www.cnblogs.com/SkySoot/archive/2012/06/27/2566004.html

ref: http://my.oschina.net/u/2338362/blog/516237?p=1

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Java线程之join_动力节点Java学院整理

    join() 定义在Thread.java中。 join() 的作用:让“主线程”等待“子线程”结束之后才能继续运行。这句话可能有点晦涩,我们还是通过例子去理解

    java 中Thread.join()的使用方法

    主要介绍了java 中Thread.join()的使用方法的相关资料,需要的朋友可以参考下

    mylty_thread_review

    no4_join join的实例 no5_thread_stop 停止线程的几种方法 no6_deadlock 模拟死锁 no7_threadlocal ThreadLocal实例及源码解析 no8_volatile volatile实例 no9_daemon_thread 守护线程实例 no10_thread...

    JAVA CountDownLatch与thread-join()的区别解析

    主要介绍了JAVA CountDownLatch与thread-join()的区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java中Thread.join()的使用方法

    主要介绍了Java中Thread.join()的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java开发技术大全(500个源代码).

    demoJoin.java 演示使用join()以确保主线程最后结束 clicker.java 一个计数用的线程类 demoPri.java 调用上面这个类设置线程优先级示例 myThread.java 自己定义的一个Thread的子类 mutexThread.java 一个能管理...

    java基本教程之join方法详解 java多线程教程

    本文对java Thread中join()方法进行介绍,join()的作用是让“主线程”等待“子线程”结束之后才能继续运行,大家参考使用吧

    Java之Thread的join方法实例

    主要介绍了Java之Thread的join方法,实例形式讲述了join方法的应用,需要的朋友可以参考下

    Java实验指导书_多线程

    Java实验指导书_多线程 《Java语言程序设计基础教程》 上机实验指导手册 异常处理 【目的】 ①线程的创建和运行 ②Thread类的sleep、join等方法的使用 ③线程同步

    浅谈Java线程Thread.join方法解析

    本篇文章主要介绍了浅谈Java线程Thread.join方法解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Java.Threads.and.the.Concurrency.Utilities.1484216997

    This concise book empowers all Java developers to master the complexity of the Java thread APIs and concurrency utilities. This knowledge aids the Java developer in writing correct and complex ...

    Java 7 Concurrency Cookbook

    Chapter 5, Fork/Join Framework will teach the readers to use the new Java 7 Fork/Join framework. It’s a special kind of executor oriented to execute tasks that will be divided into smaller ones using...

    Java Language Features 2nd Edition

    The chapter on threads follows this up and discusses everything from the very basic concepts of a thread to the most advanced topics such as synchronizers, the fork/join framework, and atomic ...

    shigeqiu#shigeqiu-blog#2_Thread类中的方法1

    /*join的意思是使得放弃当前线程的执行,并返回对应的线程,例如下面代码的意思就是:程序在main线程中调用t1线程的join方法,则main线程放弃cpu控

    Java 9 Concurrency Cookbook - Second Edition

    Java 9 Concurrency Cookbook - Second Edition by Javier Fernandez Gonzalez English | 25 Apr. 2017 | ASIN: B01KOG6V5M | 594 Pages | AZW3 | 4.11 MB Key Features Get detailed coverage of important ...

    Java Threads and the Concurrency Utilities(Apress,2015)

    This concise book empowers all Java developers to master the complexity of the Java thread APIs and concurrency utilities. This knowledge aids the Java developer in writing correct and complex ...

    Java 7并发编程实战手册

    7.7 通过实现ThreadFactory接口为Fork/Join框架生成定制线程 267 7.8 定制运行在Fork/Join框架中的任务 273 7.9 实现定制Lock类 278 7.10 实现基于优先级的传输队列 284 7.11 实现自己的原子对象 294 ...

    Java 9 Concurrency Cookbook.2e

    * Fork/Join framework to enhance the performance of your application * Parallel streams to process big sets of data in a parallel way, including the new Java 9 reactive streams * Data structures for ...

    java线程分析java project例子

    java线程分析java project例子,里面分析了sleep(),join(),yield()和wait以及notify等方法的使用以及需要注意的地方。

Global site tag (gtag.js) - Google Analytics