Java并发编程--多线程中的join方法详解

java

Java Thread中, join()方法主要是让调用该方法的thread在完成run方法里面的部分后, 再执行join()方法后面的代码

例如:定义一个People类,run方法是输出姓名年龄。

class People implements Runnable{

public String name ;

public int age;

public People(String name , int age){

this.name =name;

this.age = age;

}

@Override

public void run() {

System.out.println("开始输出");

System.out.println("姓名"+name);

System.out.println("年龄"+age);

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println("========结束=========");

}

}

如果main方法中不使用join 如下

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

People p1 = new People("张三",10);

People p2 = new People("李四",11);

Thread t1 = new Thread(p1);

Thread t2 = new Thread(p2);

t1.start();

t2.start();

}

那么输出为:

开始输出

开始输出

姓名张三

年龄10

姓名李四

年龄11

========结束=========

========结束=========

可见两个线程是同时开始的。

如果main方法中使用join,如下:

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

People p1 = new People("张三",10);

People p2 = new People("李四",11);

Thread t1 = new Thread(p1);

Thread t2 = new Thread(p2);

t1.start();

t1.join();

t2.start();

t2.join();

}

输出

开始输出

姓名张三

年龄10

========结束=========

开始输出

姓名李四

年龄11

========结束=========

可见是执行完了第一个线程之后再执行的第二个线程。

以上是 Java并发编程--多线程中的join方法详解 的全部内容, 来源链接: utcz.com/z/392892.html

回到顶部