多執行緒(管程法)

2021-09-25 15:50:25 字數 957 閱讀 9546

管程法:什麼是管程法?就是併發協作模型「生產者/消費者模式」實現方式的一種。

思想:1.首先需要四個角色 :1.生產者2.消費者3.緩衝區4.饅頭

2.生產者生產饅頭放到緩衝區,緩衝區如果滿了,生產者停止運作,進入等待

3.消費者從緩衝區拿饅頭,如果緩衝區饅頭沒有了,先喚醒生產者,然後進入等待

/**

* 協作模型:生產者消費者實現方式一:管程法

* 借助緩衝區

* @author

* */

例項:模擬生產饅頭

public class cotest01

}//生產者

class productor extends thread

public void run() }}

//消費者

class consumer extends thread

public void run() }}

//緩衝區

class syncontainer catch (interruptedexception e)

} //存在空間 可以生產

buns[count] = bun;

count++;

//存在資料了,可以通知消費了

this.notifyall();

} //獲取 消費

public synchronized steamedbun pop() catch (interruptedexception e)

} //存在資料可以消費

count --;

steamedbun bun = buns[count] ;

this.notifyall(); //存在空間了,可以喚醒對方生產了

return bun; }}

//饅頭

class steamedbun

}

多執行緒25 管程法

利用快取區存放資料 package com.faq.gaoji 測試 生產者消費者模型 利用緩衝區解決 管程法 生產者 消費者 產品 緩衝區 public class testpc 生產者 class productor extends thread 生產 override public void ...

多執行緒20 管程法

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

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

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