日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java中设计模式之生产者消费者模式-3

發(fā)布時(shí)間:2025/3/20 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中设计模式之生产者消费者模式-3 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引言

生產(chǎn)者-消費(fèi)者(producer-consumer)問(wèn)題,也稱作有界緩沖區(qū)(bounded-buffer)問(wèn)題,兩個(gè)進(jìn)程共享一個(gè)公共的固定大小的緩沖區(qū)。其中一個(gè)是生產(chǎn)者,用于將消息放入緩沖區(qū);另外一個(gè)是消費(fèi)者,用于從緩沖區(qū)中取出消息。問(wèn)題出現(xiàn)在當(dāng)緩沖區(qū)已經(jīng)滿了,而此時(shí)生產(chǎn)者還想向其中放入一個(gè)新的數(shù)據(jù)項(xiàng)的情形,其解決方法是讓生產(chǎn)者此時(shí)進(jìn)行休眠,等待消費(fèi)者從緩沖區(qū)中取走了一個(gè)或者多個(gè)數(shù)據(jù)后再去喚醒它。同樣地,當(dāng)緩沖區(qū)已經(jīng)空了,而消費(fèi)者還想去取消息,此時(shí)也可以讓消費(fèi)者進(jìn)行休眠,等待生產(chǎn)者放入一個(gè)或者多個(gè)數(shù)據(jù)時(shí)再喚醒它。

生產(chǎn)者消費(fèi)者模型

四個(gè)類

1.產(chǎn)品類:面包,飲料等
2.資源類(中介類):超市(買賣各種產(chǎn)品)
3.生產(chǎn)類(工廠類):生產(chǎn)各種產(chǎn)品
4.消費(fèi)者類(顧客類):消費(fèi)各種產(chǎn)品

代碼:

1.產(chǎn)品類

package 設(shè)計(jì)模式之生產(chǎn)者消費(fèi)者模式;public class Bread {private String brand;private double price;public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}@Overridepublic String toString() {return "Bread [brand=" + brand + ", price=" + price + "]";}public Bread(String brand, double price) {super();this.brand = brand;this.price = price;}public Bread() {super();}}

2.中介類(資源類):超市

負(fù)責(zé)統(tǒng)籌安排所有資源,是生產(chǎn)者和消費(fèi)者的橋梁。類似多線程中的共享資源,各個(gè)線程來(lái)操作同一個(gè)資源。

package 設(shè)計(jì)模式之生產(chǎn)者消費(fèi)者模式;public class Market { //假設(shè)超市買面包的容量為6(即面包貨架容量為6)private Bread[] breads=new Bread[6];int index=-1;// 為什么不默認(rèn)為0 因?yàn)閿?shù)組下標(biāo)為0 是有一個(gè)數(shù)據(jù)的//從工廠進(jìn)面包public synchronized void getBread(Bread bread){//如果昨天生意不好,沒(méi)有賣出面包,此時(shí)就不需要進(jìn)貨if(index>=5){// 下標(biāo)如果大于等于5 那就是有6個(gè)面包 工廠不需要生產(chǎn) 所以讓工廠等著try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//生意很好,賣出了面包,需要進(jìn)貨// 為了不覆蓋任何面包 需要先加 下標(biāo) 后賦值index++;//將進(jìn)的面包放進(jìn)數(shù)組里(貨架上)breads[index]=bread;System.out.println("進(jìn)了"+breads[index]);//進(jìn)貨后,(通知)讓顧客消費(fèi)this.notify();}// 賣面包public synchronized void saleBread(){//如果昨天生意很好,面包已經(jīng)賣完了,那么顧客就需要等待if(index<0){// 下標(biāo)小于0 就證明是 數(shù)組中沒(méi)有面包了 ,就讓消費(fèi)者等待try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//有面包可以賣// 賣了哪個(gè)面包System.out.println("[賣了]"+breads[index]);// 賣完面包 下標(biāo)自動(dòng)減-index--;this.notify();}}

3.工廠類

package 設(shè)計(jì)模式之生產(chǎn)者消費(fèi)者模式;public class Factory implements Runnable {Market market;public Factory(Market market) {super();this.market = market;}@Overridepublic void run() {for(int i=0;i<80;i++){market.getBread(new Bread("桃李牌"+i, 4.5));}} }

4.消費(fèi)者

package 設(shè)計(jì)模式之生產(chǎn)者消費(fèi)者模式;public class Customer implements Runnable {Market market;public Customer(Market market){this.market=market;}@Overridepublic void run() {for(int i=0;i<80;i++){market.saleBread();}}}

測(cè)試類

package 設(shè)計(jì)模式之生產(chǎn)者消費(fèi)者模式;public class Test {public static void main(String[] args){Market market=new Market();Factory factory=new Factory(market);Customer customer=new Customer(market);Thread thread=new Thread(factory,"生產(chǎn)者");Thread thread2=new Thread(customer,"消費(fèi)者");thread.start();thread2.start();} }

總結(jié)

以上是生活随笔為你收集整理的Java中设计模式之生产者消费者模式-3的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 尤物视频在线观看免费 | 五月色婷婷综合 | 亚洲一区二区在线视频 | 免费色av | 男生操女生动漫 | 黄色一机片 | 欧美日韩一区二区三区在线 | 精品国产日本 | 久久久一区二区三区 | www.久久久久久久久 | 久久爱一区 | 天天玩天天干 | 国产精品果冻传媒 | 久久小草 | 亚洲爱爱爱 | 亚洲一区二区色 | 天天艹 | www.五月天婷婷 | 亚洲美女一级片 | 影音先锋在线中文字幕 | 奇米成人| aa亚洲 | 亚洲社区在线 | 我要色综合网 | 秋霞网一区 | sm调教羞耻姿势图片 | 国产传媒精品 | 五月婷婷六月丁香综合 | 日本a级黄 | 国产裸体美女永久免费无遮挡 | 亚洲香蕉网站 | 色一情一伦一子一伦一区 | 成人免费看类便视频 | 精品久久久无码中文字幕 | 我要看黄色大片 | 男人透女人免费视频 | 又污又黄的网站 | 日本在线视频播放 | 综合在线一区 | 亚洲美女色视频 | 欧美一区二区三区啪啪 | 国产成人一级片 | 一区二区三区欧美日韩 | 国产让女高潮的av毛片 | 国产视频一区在线播放 | 麻豆av影院 | 国产丝袜网站 | 亚洲精品成人网 | 日韩欧美三级 | 成人特级毛片69免费观看 | 久久二 | 成年人激情网站 | 久久高清免费 | 精品九九九九 | 亚洲乱码国产乱码精品精软件 | 另类少妇人与禽zozz0性伦 | 色吧久久 | 91桃色视频在线观看 | 免费黄色美女网站 | 久久久久久久影视 | 亚洲另类xxxx | 亚洲综合自拍偷拍 | 亚洲色图2 | 狠狠操操 | 国产探花一区二区 | 久久精品丝袜 | 免费av片| 日韩在线播放视频 | 蜜臀视频在线播放 | 精品裸体舞一区二区三区 | 夫妻毛片 | 国产精品偷乱一区二区三区 | 亚洲女人毛片 | 麻豆精品在线观看 | 激情777 | 久草精品视频在线观看 | 伊人ab | av大片网站| 成人教育av| 日本xxxx高清 | 久久青青 | 欧美a级在线 | 成年人的视频网站 | 特色黄色片 | 国产毛片自拍 | 国产波霸爆乳一区二区 | 极品国产白皙 | 日韩av无码久久 | 中文字幕在线视频一区二区 | 波多野结衣网站 | 伊人天天干 | 日韩福利社 | 国产成人免费片在线观看 | www.超碰| 双性人hdsexvideos| 成人二区三区 | 亚洲精品无吗 | 澳门久久| 69精品丰满人妻无码视频a片 |