生產者和消費者案例

2021-07-12 01:58:07 字數 2100 閱讀 3702

public

final

void wait()

throws interruptedexception

丟擲:

illegalmonitorstateexception - 如果當前執行緒不是此物件監視器的所有者。

interruptedexception - 如果在當前執行緒等待通知之前或者正在等待通知時,任何執行緒中斷了當前執行緒。在丟擲此異常時,當前執行緒的中斷狀態 被清除。

public

final

void notify()

丟擲:

illegalmonitorstateexception - 如果當前執行緒不是此物件監視器的所有者。

package com.manu;

/* * 多執行緒共享資料

* 生產者消費者案例

*/public

class

producterconsumerdemo

}//生產者

class

producter

implements

runnable

@override

public

void

run()

catch (interruptedexception e)

// food.setprice(20);

food.set("糖醋里脊", 20);

}else catch (interruptedexception e)

// food.setprice(30);

food.set("毛血旺", 30);

}} }

}//消費者

class

consumer

implements

runnable

@override

public

void

run()

catch (interruptedexception e)

// system.out.println(food.getname()+"-->"+food.getprice());

food.get();

} }}//共享資料

class

food

public

food

(string name, int price)

public string getname

() public

void

setname

(string name)

public

intgetprice

() public

void

setprice

(int price)

public

synchronized

void

set(string name, int price)

catch (interruptedexception e)

} this.name = name;

try catch (interruptedexception e)

this.price = price;

flag = false;

this.notify();//喚醒在此物件監視器上等待的單個執行緒

經典案例 生產者和消費者

生產者與消費者問題是多執行緒同步的乙個經典問題。生產者和消費者同時使用一塊緩衝區,生產者生產商品放入緩衝區,消費者從緩衝區中取出商品。我們需要保證的是,當緩衝區滿時,生產者不可生產商品 當緩衝區為空時,消費者不可取出商品。wait 與notify 方法 lock與condition機制 blocki...

生產者 消費者案例(1)

多執行緒開發中經典的案例。生產者 消費者案例 package com.xiaofeng.example 生產者 消費者案例 author xiaofeng1015 public class theaddemo5 class producter implements runnable override...

生產者與消費者案例

手頭有兩個人 也就是兩個類 乙個做存操作,乙個做取操作,並且只有當存完或者取完方可進行令乙個操作。以此達到迴圈輸出的訪問操作。第一步 先寫測試生產者類與消費者類 和 執行緒操作msg類 生產者 public class product implements runnable override pub...