join //加入,让线程加入到当前线程.
public final void join()
多线程join 方法
void join() 等待该线程终止。
void join(long millis) 等待该线程终止的时间最长为millis 毫秒。
特点:当A 线程走到B 线程的join 方法时,A 就会等待B 线程都执行完,A 才会执行
作用: join 可以用来临时加入线程执行;
需求:模拟打麻将
package java.thread;
/**
*join //加入,让线程加入到当前线程.
*/
public class ThreadJoinDemo {
public static void main(String[] args) {
Player p1 = new Player("张三",1);
Player p2 = new Player("李四", 3);
Player p3 = new Player("王五", 5);
Player p4 = new Player("赵六", 6);
p1.start();
p2.start();
p3.start();
p4.start();
try {
p1.join();
p2.join();
p3.join();
p4.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("开局");
}
}
class Player extends Thread{
private String name0;
private int sleep;
public String getName0() {
return name0;
}
public void setName0(String name0) {
this.name0 = name0;
}
public int getSleep() {
return sleep;
}
public void setSleep(int sleep) {
this.sleep = sleep;
}
public Player(String name0, int sleep) {
this.name0 = name0;
this.sleep = sleep;
}
@Override
public void run() {
try {
System.out.println(name0+"出发了");
Thread.sleep(sleep*1000);
System.out.println(name0 + "到了"+"耗时"+sleep+"秒");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
模拟结果:
张三出发了
李四出发了
赵六出发了
王五出发了
张三到了耗时1秒
李四到了耗时3秒
王五到了耗时5秒
赵六到了耗时6秒
开局