-3

任何人都可以分享java生产者消费者程序的代码片段。该计划的目标是在给定的时间点应该只有 1 个项目。我知道我应该使用等待和通知,但无法获得完整的代码段。这可以在不使用任何类型的数据结构的情况下完成吗?

提前致谢。

class Consumer extends Thread {
    private Good gObj;  
    Consumer(Good g) {
        gObj = g; 
    }
    public void run() {
        synchronized(gObj) {
            wait(); 
        } 
    } 
}

class Good { } 

public class Producer implements Runnable { 
    private Good gObj; 
    Producer(Good g) { 
        gObj = g; 
    }
    public void run() { 
        synchronized(gObj) { 
            notify(); 
        }
    }
    public static void main(String[] args) {
        Good g = new Good();
        Producer p = new Producer(g);
        Thread producerThread = new Thread(p);
        producerThread.start();
        Consumer c = new Consumer(g);
        c.start();
   }
}
4

1 回答 1

0
class Producer {   String producer = "once";

    /// returns the string and sets it to null
    // 
    String get() {
      String get = producer;
      producer = null;
      return get;
    }
}

class Consumer { Producer p = new Producer();
  Consumer() {
    out.println( "The value of producer is: " + p.get();
    out.println( "The value of producer is: " + p.get();
  }
}

这可以在不使用任何类型的数据结构的情况下完成吗?

当然!

于 2013-08-18T03:22:29.627 回答