示例**:
/*
* 生產者/消費者問題
* 生產者(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...