2013-08-18 15 views
-3

任何人都可以分享java生產者消費者程序的代碼片段。該計劃的目標是在特定的時間點應該只有一個項目。我知道我應該使用等待和通知,但無法獲得完整的片段。這可以在不使用任何類型的數據結構的情況下完成嗎?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(); 
    } 
} 
+0

如果您希望人們共享代碼片段,那麼您應該至少努力嘗試先共享您的代碼。另外,你能否給我們提供一些關於這個問題的背景?就像你正在努力實現的目標一樣,你的意圖等等。 –

+0

你是想教我禮貌或者在這裏排序嗎?:P並且回到我已經提到過的問題中。 – kushi

+0

好我有hav作爲項目..但不知道該怎麼處理它..這是我開始的代碼片段.. – kushi

回答

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(); 
    } 
} 

這可以在不使用任何類型的數據結構來完成?

當然!

+0

感謝提示..明白了...... – kushi

+0

@kushi你可以看看使用包含的jms ... – Dru