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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java学习笔记—生产者和消费者模式

發布時間:2023/12/10 java 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java学习笔记—生产者和消费者模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、生產者和消費者問題

生產者消費者模式是一個十分經典的多線程協作的模式。 生產者和消費者問題包含了兩類線程:一類是生產者線程用于生產數據, 一類是消費者數據用于消費數據。 /*生產者消費者案例 包含一個奶箱類,一個生產者類,一個消費者類和一個測試類。 */ //定義奶箱類 public class Box {//定義成員變量牛奶private int milk;//定義成員變量表示奶箱的狀態private static boolean state = false;//存儲牛奶的操作public synchronized void storeMilk(int milk) {//如果有牛奶,等待消費if (state) {//這里注意要進行異常處理try {wait();} catch (InterruptedException e) {//打印異常信息到控制臺e.printStackTrace();}}//如果沒有牛奶就生產牛奶this.milk = milk;System.out.println("生產者將第" + this.milk + "瓶奶放入奶箱中");//生產完畢,修改奶箱狀態state = true;notify();}public synchronized void get() {//如果沒有牛奶,等待生產if (!state) {//異常處理try{wait();} catch (InterruptedException e) {e.printStackTrace();}}//如果有,就獲取牛奶System.out.println("消費者拿到第" + this.milk + "瓶奶" );//消費完畢之后修改奶箱狀態state = false;notify();} }public class Producer implements Runnable {private Box b;//構造方法,將奶箱對象作為參數public Producer(Box b) {this.b = b;}@Overridepublic void run() {for (int i = 1; i <= 10; i++) {//調用存儲牛奶的方法b.storeMilk(i);}} }public class Customer implements Runnable {private Box b;//構造方法,將奶箱對象作為參數public Customer(Box b) {this.b = b;}@Overridepublic void run() {while(true) {//調用獲取牛奶的方法b.get();}} } public static void main(String[] args) {//創建奶箱對象Box box = new Box();//創建生產者和消費者對象,并將奶箱對象作為構造方法參數傳入Producer producer = new Producer(box);Customer customer = new Customer(box);//創建線程Thread t1 = new Thread(producer, "生產者");Thread t2 = new Thread(customer, "消費者");//啟動線程t1.start();t2.start();} 運行結果如下: 生產者將第1瓶奶放入奶箱中 消費者拿到第1瓶奶 生產者將第2瓶奶放入奶箱中 消費者拿到第2瓶奶 生產者將第3瓶奶放入奶箱中 消費者拿到第3瓶奶 生產者將第4瓶奶放入奶箱中 消費者拿到第4瓶奶 生產者將第5瓶奶放入奶箱中 消費者拿到第5瓶奶 生產者將第6瓶奶放入奶箱中 消費者拿到第6瓶奶 生產者將第7瓶奶放入奶箱中 消費者拿到第7瓶奶 生產者將第8瓶奶放入奶箱中 消費者拿到第8瓶奶 生產者將第9瓶奶放入奶箱中 消費者拿到第9瓶奶 生產者將第10瓶奶放入奶箱中 消費者拿到第10瓶奶

總結

以上是生活随笔為你收集整理的Java学习笔记—生产者和消费者模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。