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