您的位置:首页 > 编程语言 > Java开发

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

2015-07-29 15:43 501 查看
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
========结束=========


可见是执行完了第一个线程之后再执行的第二个线程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: