Thread執行緒之 多生產者與多消費者模擬生產消費

2021-07-23 12:23:18 字數 1088 閱讀 1587

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 ...