C 實現生產者和消費者

2022-04-09 03:28:13 字數 1250 閱讀 6840

生產者-消費者模式是乙個十分經典的多執行緒併發協作的模式,弄懂生產者-消費者問題能夠讓我們對併發程式設計的理解加深。所謂生產者-消費者問題,實際上主要是包含了兩類執行緒,一種是生產者執行緒用於生產資料,另一種是消費者執行緒用於消費資料,為了解耦生產者和消費者的關係,通常會採用共享的資料區域,就像是乙個倉庫,生產者生產資料之後直接放置在共享資料區中,並不需要關心消費者的行為;而消費者只需要從共享資料區中去獲取資料,就不再需要關心生產者的行為。但是,這個共享資料區域中應該具備這樣的執行緒間併發協作的功能:

但是本篇文章不是說的多執行緒問題,而是為了完成乙個功能,設定乙個大小固定的工廠,生產者不斷的往倉庫裡面生產資料,消費者從倉庫裡面消費資料,功能類似於乙個佇列,每一次生產者生產資料放到隊尾,消費者從頭部不斷消費資料,如此迴圈處理相關業務。

下面是乙個泛型的工廠類,可以不斷的生產資料,消費者不斷的消費資料。

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...

生產者和消費者

package demo.one public class producerconsumerdemo 資源 class resource catch interruptedexception e this.name name count system.out.println thread.curre...

生產者和消費者

package com.yuxinyicheng.test2 生產者和消費者的問題 生產者將產品交給店員,而消費者從店員處取走產品,店員一次只能有固定數量的產品 比如 20個 如果生產者試圖生產更多的產品,店員會叫生產者停一下,如果店員中有空位放產品,再通知生產者繼續生產 如果店中沒有產品,店員會告...