父親生產蘋果,女兒消費蘋果,當盤子中沒有蘋果的時候父親生產,女兒只能等待,當盤子中有蘋果的還是父親等待女兒消費
package com.cc.day16;
public class demo01
}//定義乙個類,描述消費的產品
//定義公共的變數
public string name;
public int count = 1;
//flag主要作為wait和notify的判斷標記
public boolean flag = false;
}//生產者
class producer implements runnable
//定義生產的名字
public void produce(string name)
@override
public void run() catch (interruptedexception e)
}produce("蘋果");//一定得記得生產,不生產女兒吃什麼,不生產的話,名字就全部為null
system.out.println(thread.currentthread().getname()+"削好了"+a.name);
try catch (interruptedexception e)
a.flag=true;//改變標誌
}} } }
class consumer implements runnable
//定義消費的方法,返回蘋果的名字
public string consume()
@override
public void run() catch (interruptedexception e)
}system.out.println(thread.currentthread().getname()+"拿走了"+consume());
try catch (interruptedexception e)
a.flag=false;
}} }
}
【執行結果】
父親生產蘋果1
女兒消費了蘋果1
父親生產蘋果2
女兒消費了蘋果2
父親生產蘋果3
女兒消費了蘋果3
父親生產蘋果4
女兒消費了蘋果4
父親生產蘋果5
女兒消費了蘋果5
父親生產蘋果6
女兒消費了蘋果6
父親生產蘋果7
女兒消費了蘋果7
單生產者,單消費者
單個生產者和單個消費者 include include include include include include define buffer size 5 產品庫存大小 define product cnt 50 產品生產總數 struct product cons buffer void i...
執行緒 單生產者單消費者
單生產者單消費者 乙個生產線成乙個消費執行緒 乙個生產任務乙個消費任務 乙個產品 public class demo5 產品類class p catch interruptedexception e this.name name this.price price system.out.println...
生產者消費者問題之多生產者 單消費者模型
與單生產者和單消費者模型不同的是,多生產者 單消費者模型中可以允許多個生產者同時向產品庫中放入產品。所以除了保護產品庫在多個讀寫執行緒下互斥之外,還需要維護生產者放入產品的計數器,如下 include include include include include static const int ...