通訊機制解決生產者消費者問題

2021-08-30 13:24:08 字數 475 閱讀 7133

生產者與消費者這類經典的同步問題可以有很多方式解決。

利用訊號量機制,利用管程機制解決問題。

今天來介紹一種新的解決生產者與消費者問題的方式--間接通訊機制。

先來看下**實現。

package mm;

public class receive

} consumer()

} const int capacity=n; //兩個緩衝區公共長度。

main(){

create mailbox(token);

create mailbox(buffer);

for(int i=0;i相對於其他兩種方式的特點:

1同步和通訊同時實現

2多個產生者和消費者可以同時訪問臨界資源(郵箱)。從而實現高併發。

3因為具有兩個緩衝區來實現同步,所以可以應用於分布式環境(生產者和token放在乙個站點下,消費者和buffer放在乙個站點下。)

生產者消費者問題

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