Java 實現生產者與消費者 二

2021-06-29 15:11:41 字數 852 閱讀 4338

在上篇部落格中簡單實現了生產者與消費者之間的通訊,本片部落格講的是在實際開發當中是怎樣實現二者之間的通訊的。實際開發中將生產與消費的環節封裝成函式放在了resource裡面,這樣在生產與消費的時候就更加的便捷,提高了**的復用性。**如下:

package threadcommunication;

//生產者和消費者共享的資源

class resource catch (interruptedexception e)

} this.name=name;

this.***=***;

system.out.println("輸入:"+name+"性別:"+***);

this.flag=true;

this.notify(); }

//同理將消費者封裝到resource裡面,封裝成同步函式

public synchronized void consume() catch (interruptedexception e)

} system.out.println("輸出:"+this.name+"性別:"+this.***);

this.flag=false;

this.notify(); }}

//輸入,代表的是生產者

class input implements runnable

public void run()

}}//輸出,代表的是消費者

class output implements runnable

public void run()

}}public class inputoutput2

}

執行結果如下:

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

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

java生產者消費者

題目 請用多執行緒實現乙個生產者類和乙個消費者類,生產者隨機生成20個字元,消費者將字元列印到控制台。class syncstackcatch interruptedexception e this.notify 通知其它執行緒把資料出棧 buffer index c 資料入棧 index 指標向上...

生產者與消費者問題 java實現

定義麵包類 package producerandconsumer public class bread 定義乙個籃子,裡邊放乙個陣列存放麵包 package producerandconsumer public class basket catch interruptedexception e 喚...