生产者消费者
生产者线程,消费者线程
共享数据
Object类的等待和唤醒方法
void wait()导致当前线程等待,直到另一个贤臣调用该对象的notify()方法或notifyAll()方法
void notify()唤醒正在等待对象监视器的单个线程
void notifyAll()唤醒正在等待对象监视器的所有线程
包含的类
奶箱类(Box):定义一个成员变量,表示第几瓶奶,提供存储牛奶和获取牛奶的操作
生产者类(Produccer):实现Runnable接口,重写run()方法,调用存储牛奶的操作
消费者类(Customer):实现Runnable接口,重写run()方法,调用获取牛奶的操作
测试类(BoxDemo):里面有main方法,创建奶箱对象,把奶箱对象作为构造方法参数传递,在这个类中调用存储牛奶的方法;创建消费者对象,奶箱对象作为构造方法参数传递;创建两个线程对象,分别把生产者对象和消费者对象作为构造方法参数传递;启动线程
生产牛奶操作
如果有牛奶等待消费,定义牛奶的状态
如果没有牛奶生产牛奶
生产牛奶完毕后,修改奶箱状态
消费牛奶的操作
如果没有牛奶,等待生产
如果有牛奶,就消费牛奶
消费完毕后,修改奶箱状态
wait()需要使用同步关键字
唤醒其他等待的线程:notifyAll()操作