-
大小: 2KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2024-02-02
- 語言: Java
- 標(biāo)簽: 操作系統(tǒng)??
資源簡介
生產(chǎn)者消費(fèi)者問題,描述一組生產(chǎn)者向一組消費(fèi)者提供產(chǎn)品/消息。它們共享一個(gè)有界緩沖區(qū),生產(chǎn)者向其中放產(chǎn)品/消息,消費(fèi)者從中取產(chǎn)品/消息。只要緩沖區(qū)未滿,生產(chǎn)者可放產(chǎn)品/消息,只要緩沖區(qū)有數(shù)據(jù),消費(fèi)者可取消息。即應(yīng)滿足下列二個(gè)同步條件:
1.只有在緩沖池中至少有一個(gè)緩沖區(qū)已存入消息后,消費(fèi)者才能從中提取消息,否則消費(fèi)者必須等待。
2.只有緩沖池中至少有一個(gè)緩沖區(qū)是空時(shí),生產(chǎn)者才能把消息放入緩沖區(qū),否則生產(chǎn)者必須等待。
設(shè)計(jì)要求:
要求設(shè)定一個(gè)緩沖池中有n個(gè)緩沖區(qū),每個(gè)緩沖區(qū)存放一個(gè)消息,創(chuàng)建多個(gè)生產(chǎn)者,消費(fèi)者,并在每個(gè)生產(chǎn)者消費(fèi)者創(chuàng)建時(shí)、發(fā)出放/取產(chǎn)品申請時(shí)、正在放/取產(chǎn)品時(shí)和放/取產(chǎn)品結(jié)束時(shí)分別給出提示信息,并顯示取/方產(chǎn)品前后的緩沖區(qū)狀態(tài),以檢查所有處理都遵守相應(yīng)的操作限制。

代碼片段和文件信息
package?ProduceConsumeProblems;
public?class?Consumer?implements?Runnable{???
????ProducerAndConsumer?queue;
public?Consumer(ProducerAndConsumer?s){???
????????queue=s;???
????}???
????public?void?run(){???
????????for(int?i=0;i<20;i++){???
????????????queue.outqueue();
try{???
????????????????Thread.sleep((int)(Math.random()*20));???
????????????}catch(InterruptedException?e){System.out.println(e);}???
????????}???
????}???
}??
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????471??2010-01-02?16:21??生產(chǎn)者消費(fèi)者問題\Consumer.java
?????文件????????501??2010-01-02?16:21??生產(chǎn)者消費(fèi)者問題\PCTest.java
?????文件????????519??2010-01-02?16:21??生產(chǎn)者消費(fèi)者問題\Producer.java
?????文件???????1287??2010-01-02?16:21??生產(chǎn)者消費(fèi)者問題\ProducerAndConsumer.java
?????目錄??????????0??2010-01-02?16:21??生產(chǎn)者消費(fèi)者問題
-----------?---------??----------?-----??----
?????????????????2778????????????????????5
評論
共有 條評論