public static void main(String[] args) {
//创建锁对象保证唯一
Object object = new Object();
//创建一个消费者
new Thread(){
@Override
public void run() {
//一直等着卖包子
while (true){
//保证等待和唤醒的进程只能有一个执行,需要使用同步技术
synchronized (object){
System.out.println("告知老板要买的包子的种类和数量");
try {
object.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
//唤醒之后的代码
System.out.println("包子已经做好了,开始吃");
}
}
}
}.start();
//创建一个生产者
new Thread(){
@Override
public void run() {
while (true){
//花了5秒做包子
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//保证等待和唤醒的线程只能有一个执行,需要用到同步技术
synchronized (object){
System.out.println("老板5秒钟做好包子了,告知顾客可以吃包子了");
object.notify();
}
}
}
}.start();
}