該簡單生產者-消費者執行緒,屬於本人學習過程中的一段練習**.如有不足,請指點
package com.lanqiao.demo3;
/**
* @author 大廣子
* * 類說明 :簡單的生產者,消費者執行緒
*/ public class threadptcs catch (interruptedexception e)
// 退出
system.exit(0);
}// 生產者執行緒
private static class producter implements runnable
@override
public void run() catch (interruptedexception e)
}if(total%2==0)else
system.out.println(thread.currentthread().getname() + "生產了"
+ cakes.tostring());
total++;
//有餅了,生產線程等待
cakes.setbool(true);
//有餅了 喚醒消費執行緒
cakes.notify();
}try catch (interruptedexception e) }}
}// 消費者執行緒
private static class consumer implements runnable
@override
public void run() catch (interruptedexception e)
}system.out.println(thread.currentthread().getname() + "吃了"
+ cakes.tostring());
cakes.setbool(false);
//吃了之後 要喚醒生產線程
cakes.notify();
}//睡一會,別跑太快了
try catch (interruptedexception e) }}
}package com.lanqiao.demo3;
/** 餅類
* */
public class cakes
public boolean isbool()
public void setbool(boolean bool)
public string getname()
public void setname(string name)
public double getprice()
public void setprice(double price)
@override
public string tostring()
}總結:控制好鎖,採用執行緒控制wait() 讓當前執行緒等待,notify()喚醒在此物件鎖上等待的單個執行緒,用布林值代表是否有產品,結合while(),實現先有產品後有消費的模式
生產者消費者執行緒
include include include includeusing namespace std typedef int semaphore 訊號量是一種特殊的整型變數 const int size of buffer 5 緩衝區長度 const unsigned short producers...
生產者消費者 生產者與消費者模式
一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...
多執行緒 生產者消費者
這個就不多說了,直接上 include include using namespace std const unsigned short size of buffer 10 緩衝區長度 unsigned short productid 0 產品號 unsigned short consumeid 0...