Java執行緒通訊練習之「生產者 消費者問題」

2021-07-05 02:07:49 字數 792 閱讀 9249

示例**:

/*

* 生產者/消費者問題

* 生產者(productor)將產品交給店員(clerk),而消費者(customer)從店員處取走產品,

* 店員一次只能持有固定數量的產品(比如:20),如果生產者試圖生產更多的產品,店員會叫生產者停一下,

* 如果店中有空位放產品了再通知生產者繼續生產;如果店中沒有產品了,店員會告訴消費者等一下,

* 如果店中有產品了再通知消費者來取走產品。

分析:1.是否涉及到多執行緒的問題?是!生產者、消費者

2.是否涉及到共享資料?有!考慮執行緒的安全

3.此共享資料是誰?即為產品的數量

4.是否涉及到執行緒的通訊呢?存在這生產者與消費者的通訊

*/class clerk catch (interruptedexception e)

} else }

public synchronized void consumeproduct() catch (interruptedexception e)

} else }}

class productor implements runnable

@override

public void run() }}

class customer implements runnable

@override

public void run() }}

public class testproduceconsume

}

NSCondition 多執行緒解決生產者消費者問題

import viewcontroller.h inte ce viewcontroller 資料緩衝區 property strong,nonatomic nsmutablearray products 執行緒鎖 property strong,nonatomic nscondition cond...

執行緒通訊之生產者與消費者 小碼哥java

定義三個類,分別是producer 生產者 consumer 消費者 sharereasource 公共區域 定義公共區域類的目的 解除耦合關係,如果沒有公共區域,那麼生產者類中將要引用消費者,消費者類中也需要引用生產者,這樣會使生產者和消費者彼此都耦合太深,如果修改了消費者,需要修改生產者,如果修...

執行緒的通訊 生產者消費者

public static void main string agrs class resource catch interruptedexception e this.name name cont system.out.println thread.currentthread getname pr...