多執行緒 生產者消費者案例

2021-09-30 00:04:57 字數 1396 閱讀 7320

案例需求

生產者消費者案例中包含的類:

奶箱類(box):定義乙個成員變數,表示第x瓶奶,提供儲存牛奶和獲取牛奶的操作

生產者類(producer):實現runnable介面,重寫run()方法,呼叫儲存牛奶的操作

消費者類(customer):實現runnable介面,重寫run()方法,呼叫獲取牛奶的操作

測試類(boxdemo):裡面有main方法.

main方法中的**步驟如下

①建立奶箱物件,這是共享資料區域

②建立消費者建立生產者物件,把奶箱物件作為構造方法引數傳遞,因為在這個類中要呼叫儲存牛奶的操作

③物件,把奶箱物件作為構造方法引數傳遞,因為在這個類中要呼叫獲取牛奶的操作

④建立2個執行緒物件,分別把生產者物件和消費者物件作為構造方法引數傳遞

⑤啟動執行緒

public

class

boxcatch

(interruptedexception e)

}//如果沒有牛奶,就生產牛奶

this

.milk = milk;

system.out.

println

("送奶工將第"

+this

.milk +

"瓶奶放入奶箱");

//生產完畢之後,修改奶箱狀態

state =

true

;//喚醒其他等待的執行緒

notifyall()

;}public

synchronized

void

get(

)catch

(interruptedexception e)

}//如果有牛奶,就消費牛奶

system.out.

println

("使用者拿到第"

+this

.milk +

"瓶奶");

//消費完畢之後,修改奶箱狀態

state =

false

;//喚醒其他等待的執行緒

notifyall()

;}}public

class

producer

implements

runnable

@override

public

void

run()}

}public

class

customer

implements

runnable

@override

public

void

run()}

}public

class

boxdemo

}

多執行緒 消費者與生產者案例

生產者 package producer consumer public class producer implements runnable override public void run else 消費者 package producer consumer public class consu...

多執行緒 生產者消費者

這個就不多說了,直接上 include include using namespace std const unsigned short size of buffer 10 緩衝區長度 unsigned short productid 0 產品號 unsigned short consumeid 0...

Linux多執行緒 生產者消費者

生產者消費者問題 這是乙個非常經典的多執行緒題目,題目大意如下 有乙個生產者在生產產品,這些產品將提供給若干個消費者去消費,為了使生產者和消費者能併發執行,在兩者之間設定乙個有多個緩衝區的緩衝池,生產者將它生產的產品放入乙個緩衝區中,消費者可以從緩衝區中取走產品進行消費,所有生產者和消費者都是非同步...