當(dāng)A線程執(zhí)行到了B線程Join方法時A就會等待钉稍,等B線程都執(zhí)行完A才會執(zhí)行,Join可以用來臨時加入線程執(zhí)行.
join方法: 線程讓步四敞。
需求:模擬小時候打醬油.
class Mother extends Thread{
@Override
public void run() {
System.out.println("媽媽洗菜...");
System.out.println("媽媽切菜...");
System.out.println("媽媽發(fā)現(xiàn)沒有醬油了...");
//通知兒子去打醬油
Son s = new Son();
s.start();
try {
s.join(); // join 加入 : 如果當(dāng)前線程執(zhí)行了join方法啥纸,那么當(dāng)前線程就會讓步給新加入的線程先完成任務(wù),然后當(dāng)前線程才繼續(xù)的執(zhí)行自己的任務(wù)瓤摧。
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("媽媽炒菜...");
System.out.println("全家一起吃飯...");
}
}
//兒子線程
class Son extends Thread{
@Override
public void run() {
try {
System.out.println("兒子下樓梯");
Thread.sleep(1000);
System.out.println("兒子一直往前走...");
System.out.println("兒子買到了醬油...");
System.out.println("兒子跑回來...");
Thread.sleep(1000);
System.out.println("兒子把醬油給老媽..");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Demo6 {
public static void main(String[] args) {
Mother m = new Mother();
m.start();
}
}