(Java)线程中,生产者和消费者案例

线程中,生产者和消费者案例

假设送奶工送牛奶(生产者)和用户喝牛奶(消费者),以及放牛奶的箱子(缓冲区)为一个完整的生产者和消费者案例
此案例中包含四个类:

  1. 奶箱类(Box)
  2. 生产者类(Producer)
  3. 消费者类(Customer)
  4. 测试类(BoxDemo)

使用wait()方法时,一定记得唤醒线程!
(如果没有唤醒,输出将会一直在送第一瓶牛奶)
wait()方法和notify()方法需要锁对象,即需要在同步中使用
(不然会报异常)

package Test_14;

public class Box {
   

    private int milk;
    //对奶箱加一个状态判断
    private boolean state = false;
    //wait()方法和notify()方法需要锁对象,即需要在同步中使用
    public  synchronized void put(int milk){
   
        //如果有牛奶,则等待消费(抛出异常)
        if (state){
   
            try {
   
                wait();
            } catch (InterruptedException e) {
   
                e.printStackTrace(

你可能感兴趣的:(java,单例模式,rabbitmq,开发语言)