- 生产者消费者模式,生产者负责生产,消费者负责消费。生产和消费,需要实现供需平衡,生产者生产多就停止生产,消费者消费完了,就要开始生产不能一味的消费实现消费者也生产者供需平衡。
- 例如 冰箱是一个存放冰淇淋的仓库,冰箱没冰淇淋需要出外面购买(生产者生产)最多只能把冰箱装满,自己吃冰淇淋(消费者消费)吃完后就要重新购买香蕉(生产者生产);
冰箱
class Food{
int i;
}
生产者
class Sheng extends Thread{
Food food;
public Sheng(Food food){
this.food=food;
}
public void run(){
while(true){
synchronized(food){
if(food==0){
food.i++;
food.notify();
}else{
food.wait();
}
}
}
}
}
消费者
class Xiao extends Thread{
Food food;
public Xiao(Food food){
this.food=food;
}
public void run(){
while(true){
synchronized(food){
if(food.i==1){
food.i--;
food.notify();
}else{
food.wait();
}
}
}
}
}
Test
public class Test {
public static void main(String[]args){
Food food=new Food();
Thread sheng=new Sheng(food);
Thread Xiao xiao=new Xiao(food);
sheng.start();
xiao.start();
}
}