thread 執行緒經典示例之多生產者 多消費者
要求多個生產者進行生產 多個消費者進行消費
其間的生產和消費實現同步
如果庫存超過20則生產等待消費繼續
如果消費少於0則消費暫停生產繼續
方法摘要
**實現如下
此模組實現主線程中建立兩個生產者物件 兩個消費者執行緒物件
public static void main(string args)
此**快實現生產者執行緒
class producer implements runnable
@override
public void run()
}}此**快實現消費者執行緒
class consumer implements runnable
@override
public void run()
}}此**快實現產品類其中封裝了同步的生產和消費方法
class clerk catch (interruptedexception e)
} else catch (interruptedexception e)
system.out.println(thread.currentthread().getname()+"生成了1個產品,目前庫存是:"+(++product));
notifyall();//喚醒 所有此物件監視器上的等待執行緒
}}/**
* 供消費者消費產品使用
* * 每次呼叫此方法,相當於 消費者消費
* */
public synchronized void sellproduct() catch (interruptedexception e)
} else catch (interruptedexception e)
system.out.println(thread.currentthread().getname()+"消費了1個產品,目前庫存是:"+(--product));
notifyall();//通知此物件監視器上等待的所有執行緒
}}}
Java之多執行緒模擬 多生產者 多消費者
測試入口 多執行緒程式 模擬2個生產者生產產品,3個消費者消費產品 2個生產者不停的生產商品,3個消費者不停的消費產品 author smilexs public class test 涉及原始碼 public class resoures 生產 param productname public v...
多執行緒之生產者與消費者問題
考慮這樣乙個飯店,他有乙個廚師和乙個服務生,然後服務生必須等待廚師準備好食物,當廚師準備好食物時,他會通知服務生,然後服務生上菜,然後返回繼續等待。食物 class meal public string tostring 服務生 class waitperson implements runnabl...
多執行緒之生產者與消費者問題
生產者生產產品後將產品放在乙個倉庫裡,消費者購買省商品相當於從倉庫裡拿出商品。這其中涉及到的有生產者 消費者與倉庫以及產品四個物件,因此需要建立四個類來表示。最後還需要乙個測試類。對於生成與消費這兩個動作可是是同時執行的 只要有商品的話 因此需要使用到多執行緒的知識。product類 public ...