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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用idea编辑生产者与消费者

發(fā)布時間:2023/12/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用idea编辑生产者与消费者 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
public class Demo11 {public static void main(String[] args) {food f = new food();new cook(f).start();new waiter(f).start();}//靜態(tài)廚師類繼承Threadstatic class cook extends Thread{private food f;public cook(food f) {this.f = f;}@Overridepublic void run() {for(int i=0;i<100;i++){if(i%2==0){f.SetNameandTaste("餃子","牛肉圓蔥");}else{f.SetNameandTaste("包子","豬肉玉米");}}}}//靜態(tài)服務員類繼承Threadstatic class waiter extends Thread{private food f;public waiter(food f) {this.f = f;}@Overridepublic void run() {for(int i=0;i<100;i++) {try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}f.get();}}}//菜類static class food{private String name;private String taste;//true表示可以生產。boolean flag = true;public synchronized void SetNameandTaste(String name, String taste) {if (flag) {this.name = name;try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}this.taste = taste;flag = false; //把flag改成false 下一次調用flag時是false 為了進不來循環(huán) 避免廚師連續(xù)生產.this.notifyAll(); //喚醒當前在this下睡著的所有線程.try {this.wait(); //喚醒后讓廚師線程睡著.} catch (InterruptedException e) {e.printStackTrace();}}}public synchronized void get(){if(!flag) {System.out.println("服務員端走的是:" + name + "菜的味道是:" + taste);flag = true; //把flag改成true 下一次調用flag時是true 為了進不來循環(huán) 避免服務員連續(xù)端菜.this.notifyAll();//喚醒當前在this下睡著的所有線程.try {this.wait();//喚醒后讓服務員線程睡著.} catch (InterruptedException e) {e.printStackTrace();}}}} }

總結

以上是生活随笔為你收集整理的使用idea编辑生产者与消费者的全部內容,希望文章能夠幫你解決所遇到的問題。

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