Posted on 2006-10-22 14:11
久城 阅读(337)
评论(0) 编辑 收藏 所属分类:
JavaTest
最基本的多线程的实现...看寝室的兄弟们学到多线程了,自己也回忆回忆!
/**
*title 用多线程实现厨师与服务生的问题
*@author:realsmy
*date 2006-10-22 14:10
*/
public class Test{
public static void main(String args[]){
CanGuan c=new CanGuan();
new Thread(new ChuShi(c)).start();
new Thread(new FuWuSheng(c)).start();
}
}
//厨师一直执行餐馆类的set()方法
class ChuShi implements Runnable{
CanGuan c;
public ChuShi(CanGuan c){
this.c=c;
}
public void run(){
while(true){
c.set();
}
}
}
//服务生一直执行餐馆类的get()方法
class FuWuSheng implements Runnable{
CanGuan c;
public FuWuSheng(CanGuan c){
this.c=c;
}
public void run(){
while(true){
c.get();
}
}
}
class CanGuan
{
private boolean b = true;
private int i =1;
public synchronized void set()
{
if(!b)
try{
wait();
}catch(Exception e){}
System.out.println("厨师做好了菜"+i);
try{
Thread.sleep(1000);
}catch(Exception e){}
b = false;
notify();
}
public synchronized void get()
{
if(b)
try{
wait();
}catch(Exception e){}
System.out.println("服务生取走了菜"+i);
i++;
try{
Thread.sleep(1000);
}catch(Exception e){}
b = true;
notify();
}
}
欢迎来访!^.^!
本BLOG仅用于个人学习交流!
目的在于记录个人成长.
所有文字均属于个人理解.
如有错误,望多多指教!不胜感激!