Java:生产者消费者

Java: ProducerConsumer

我没有发现此代码有任何问题,但结果未显示在 eclipse 的控制台中 window。

有什么问题?

class Buffer{
    private int data;
    private boolean empty = true;
    
    public synchronized int get() {
        while(empty) {
            
            try {
                wait();
            } catch (InterruptedException e) {
            }
        }
        
        empty = true;
        
        notifyAll();
        return data;
    }
    
    public synchronized void put(int data) {
        while (!empty) {
            try {
                wait();
            } catch (InterruptedException e) {  
            }
        }
        empty = false;
        this.data = data;
        notifyAll();
    }
}

class Producer implements Runnable{
    private Buffer buffer;
    
    public Producer(Buffer buffer) {
        
        
        this.buffer = buffer;
    }
    
    
    public void run() {
        for (int i=0; i<0; i++) {
            buffer.put(i);
            System.out.println("Producer: " + i + "th cake produced.");
            try {
                Thread.sleep((int) (Math.random() * 100));
            } catch (InterruptedException e) {
            }
        }
    }
}

class Consumer implements Runnable{
    private Buffer buffer;
    
    
    public Consumer(Buffer drop) {
        
        this.buffer = drop;
    }

    public void run() {
        for(int i=0; i<10; i++) {
            int data = buffer.get();
            System.out.println("Consumer: " + data + "th cake comsumed.");
            try {
                Thread.sleep((int) (Math.random() * 100));
            } catch (InterruptedException e) {
            }
        }
    }
}

public class ProducerConsumerTest {
    public static void main(String[] args) {
        Buffer buffer = new Buffer();
        (new Thread(new Producer(buffer))).start();
        (new Thread(new Consumer(buffer))).start();
    }
}

在生产者的 运行() 方法中,你的 for 循环有问题

for (int i=0; i<0; i++)

但应该是

for (int i=0; i<10; i++)

这可能是一个错字 :)