Java:ProducerConsumer

Java:ProducerConsumer,java,multithreading,console,producer-consumer,Java,Multithreading,Console,Producer Consumer,我认为这段代码没有任何问题,但结果不会显示在eclipse的控制台窗口中 有什么问题吗 class Buffer{ private int data; private boolean empty = true; public synchronized int get() { while(empty) { try { wait(); } cat

我认为这段代码没有任何问题,但结果不会显示在eclipse的控制台窗口中

有什么问题吗

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();
    }
}
类缓冲区{
私有int数据;
私有布尔值为空=真;
公共同步int get(){
while(空){
试一试{
等待();
}捕捉(中断异常e){
}
}
空=真;
notifyAll();
返回数据;
}
公共同步的void put(int数据){
而(!空){
试一试{
等待();
}捕获(中断异常e){
}
}
空=假;
这个数据=数据;
notifyAll();
}
}
类生成器实现了Runnable{
专用缓冲区;
公共制作人(缓冲区){
this.buffer=缓冲区;
}
公开募捐{
对于(inti=0;i,在producer的run()方法中,有一个坏for循环

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