2009年2月23日月曜日

マルチスレッド03

カウンターにコーヒーが並んでいるか確認するところ

class ShopMaster extends Thread{
Counter counter;
ShopMaster(Counter theCounter){
this.counter = theCounter;
}

マスターがコーヒーを作るところが処理される

public void run(){
while(true){
try{
counter.putCoffee();
//コーヒーをぼちぼち作る
Thread.sleep((int)(3000 * Math.random()));
}catch(InterruptedException e){}
}
}
}

作られたコーヒーが誰によって作られたか表示される

class CoffeeDrinker extends Thread {
Counter counter;
String name;
CoffeeDrinker(Counter theCounter.String theName){
this.counter = theCounter;
this.name = theName;
}

ここから作られたコーヒーを飲むところが始まる

public void run(){
while(true){
try{
counter.getCoffee(this.name);
//コーヒーをボチボチ飲む
Thread.sleep((int)(10000 * Math.random()));
}catch(InterruptedException e){}
}
}
}