生產者 消費者案例(1)

2021-07-13 23:45:58 字數 1537 閱讀 6946

多執行緒開發中經典的案例。生產者、消費者案例

package com.xiaofeng.example;

/** * 生產者、消費者案例

*@author xiaofeng1015

*/public

class

theaddemo5

}class producter implements runnable

@override

public

void

run() catch (interruptedexception e)

// food.setefficasy("功效:美容養顏!");

food.set("銀耳蓮子湯!", "功效:美容養顏!");

} else catch (interruptedexception e)

// food.setefficasy("功效: 酸甜可口!");

food.set("糖醋里脊!", "功效: 酸甜可口!");}}

}}class customers implements runnable

@override

public

void

run() catch (interruptedexception e)

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

food.get();}}

}// 使用同步方法將生產和消費包裹起來。

class food

public

food(string name, string efficasy)

public

synchronized

void

set(string name, string efficasy) catch (interruptedexception e)

this.setefficasy(efficasy);

}public

synchronized

void

get() catch (interruptedexception e)

system.out.println(this.getname() + "-->" + this.getefficasy());

}public string getname()

public

void

setname(string name)

public string getefficasy()

public

void

setefficasy(string efficasy)

}

結果:

兩種菜品會在一段時間內只顯示乙個,因為在訪問乙個同步方法時,另乙個同步方法不允許被訪問。

生產者和消費者案例

public final void wait throws interruptedexception 丟擲 illegalmonitorstateexception 如果當前執行緒不是此物件監視器的所有者。interruptedexception 如果在當前執行緒等待通知之前或者正在等待通知時,任何...

生產者與消費者案例

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

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...