多執行緒25 管程法

2021-10-21 14:51:38 字數 1200 閱讀 5163

利用快取區存放資料

package com.faq.gaoji;

//測試:生產者消費者模型-->利用緩衝區解決:管程法

//生產者、消費者、產品、緩衝區

public

class

testpc

}//生產者

class

productor

extends

thread

//生產

@override

public

void

run()}

}//消費者

class

consumer

extends

thread

//消費

@override

public

void

run()}

}//產品

class

chicken

}//緩衝區

class

syncontainer

catch

(interruptedexception e)

}//如果沒有滿,我們就需要丟入產品

chickens[count]

= chicken;

count++

;//可以通知消費者消費了

this

.notify()

;}//消費者消費產品

public

synchronized chicken pop()

catch

(interruptedexception e)

}//如果可以消費

count--

; chicken chicken = chickens[count]

;//吃完了,通知生產者生產

this

.notifyall()

;return chicken;}}

輸出:生產了0隻雞

生產了1隻雞

生產了2隻雞

。。。。。

生產了98隻雞

消費了--

->

97隻雞

消費了--

->

98隻雞

生產了99隻雞

消費了--

->

99隻雞

。。。。。。。

多執行緒(管程法)

管程法 什麼是管程法?就是併發協作模型 生產者 消費者模式 實現方式的一種。思想 1.首先需要四個角色 1.生產者2.消費者3.緩衝區4.饅頭 2.生產者生產饅頭放到緩衝區,緩衝區如果滿了,生產者停止運作,進入等待 3.消費者從緩衝區拿饅頭,如果緩衝區饅頭沒有了,先喚醒生產者,然後進入等待 協作模型...

多執行緒20 管程法

解決方式1 併發協作模型 生產者 消費者模式 管程法 思路 1.首先有乙個生產者,消費者 生產者只顧生產,消費者只管消費 2.利用了乙個緩衝區,緩衝了乙個10個大小的陣列 3.有個方法叫放入產品,產品丟進來的時候,我們判斷一下緩衝區有沒有滿,如果滿了的話,生產者就要等待了,如果沒有滿,就將產品放進去...

多執行緒 23 併發協作 管程法

併發協作模型生產者消費者模式的第一種管程法,它的核心要點是加了緩衝區,有了緩衝區之後,生產者和消費者之間解耦了,比如超市的中間商,生產者向中間商發商品,超市向中間商進商品,而生產者並不知道商品買給誰了。分析這個模型有幾個角色 第乙個角色生產者,第二個角色消費者,它們兩個是多執行緒,第三個是併發容器也...