Java多线程中join方法详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程中join方法详解相关的知识,希望对你有一定的参考价值。

join()方法用于让当前执行线程等待join线程执行结束。其实现原理是不停的检查join线程是否存活,如果join线程存活则让当前线程永远等待。

join()方法部分实现细节

while(isAlive())

{

  wait(0)

}

其中wait(0)表示永远等待下去。

 join线程中止后,线程的this.notifyAll()方法会被调用,调用notifyAll()是在JVM里调用的所有在JDK中看不到,大家可以看JVM源码

示例程序:

public calss ThreadTest{

  public static void main(String[] args) throws Exception

  {

    Thread parser1 = new Thread(new Runnable(){

      public void run(){}

});

    Thread parser2 = new Thread(new Runnable(){

      public void run(){}

});

    parser1.start();

    parser2.start();

    parser1.join();

    parser2.join();

    System.out.println("all parser finish");

  }

}

以上是关于Java多线程中join方法详解的主要内容,如果未能解决你的问题,请参考以下文章

java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(多线程编程之二)

Java多线程中join方法的理解

java多线程基本概述——join()方法

Java多线程-join的使用

Java并发多线程编程——线程之间的通信之join()

Java多线程