/*
* 线程让步: join方法
*
* 需求:模拟小时候 没有盐去买盐
*
*
* */
class Mother extends Thread{
@Override
public void run() {
System.out.println("老妈洗菜...");
System.out.println("老妈切菜...");
System.out.println("老妈发现没有盐了...");
//通知儿子买盐(创建新线程)
Son son = new Son();
son.start();
/*
*join 加入:如果当前线程执行了join方法,那么当前线程就会让步
*给新加入的线程先完成任务,然后当前线程才继续执行自己的任务
*
*/
try {
son.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("老妈炒菜...");
System.out.println("全家一起吃饭...");
}
}
class Son extends Thread{
@Override
public void run() {
System.out.println("下楼...");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("走去超市...");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("买盐,砍价...");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("被骂了一顿,拿着盐回来了...");
}
}
public class Demo9 {
public static void main(String[] args) {
Mother t = new Mother();
t.start();
}
}