生產者消費者問題

2021-08-31 10:10:47 字數 899 閱讀 5099

1) 只要緩衝區有儲存單元,生產者都可往其中存放資訊;當緩衝區已滿時, 

若任意生產者提出寫要求,則都必須等待; 

2) 只要緩衝區中有訊息可取,消費者都可從緩衝區中取出訊息;當緩衝區為 

空時,若任意消費者想取出資訊,則必須等待; 

3) 生產者們和消費者們不能同時讀、寫緩衝區。 

package edison.thread;

public class producerandconsumer

}class wotou2

public int getid()

public string tostring()

}class wotoustack catch (interruptedexception e)

} this.notifyall();// 喚醒在此物件監視器上處於等待狀態的所有執行緒,使其重新獲得監控器進入同步執行狀態。

top--;

return elements[top];

} public synchronized void push(wotou2 w) catch (interruptedexception e)

} this.notifyall();

elements[top] = w;

top++; }}

class producer2 implements runnable

public void run() catch (interruptedexception e)

} }}class consumer2 implements runnable

public void run() catch (interruptedexception e)

} }}

生產者消費者問題

public class producer consumer class godown public godown int num public synchronized void produce int n catch interruptedexception e curr num n syste...

生產者 消費者問題

在學習程序互斥中,有個著名的問題 生產者 消費者問題。這個問題是乙個標準的 著名的同時性程式設計問題的集合 乙個有限緩衝區和兩類執行緒,它們是生產者和消費者,生產者把產品放入緩衝區,相反消費者便是從緩衝區中拿走產品。生產者在緩衝區滿時必須等待,直到緩衝區有空間才繼續生產。消費者在緩衝區空時必 須等待...

生產者 消費者問題

1 程序互斥問題 緩衝區b是臨界資源,程序p和c不能同時對b進行操作,即只能互斥的操作 2 程序同步問題 p不能往 滿 的的緩衝區b放產品,c不能從空的緩衝區獲得產品。當緩衝區滿時,c必須先於p執行,當緩衝區空時,p必須先於c執行 我們給出如下基於記錄型 二元 訊號量機制的解法 10 9 2013 ...