生產者消費者執行緒

2021-07-30 23:51:14 字數 1514 閱讀 8440

該簡單生產者-消費者執行緒,屬於本人學習過程中的一段練習**.如有不足,請指點

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...