首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

!一个小程序

2012-04-15 
求助!一个小程序Java codeclass ProductorConsumer{public static void main( String args[] ){Resource r

求助!一个小程序

Java code
class ProductorConsumer{    public static void main( String args[] )    {        Resource res=new Resource();// 创建共享资源            new Thread( new Productor(res) ).start();        new Thread( new Productor(res) ).start();        new Thread( new Consumer(res) ).start();        new Thread( new Consumer(res) ).start();    }}class Resource{    private int account=0;    private boolean flag=false;    public boolean getFlag()    {        return flag;    }    public void setFlag(boolean a)    {        flag=a;    }    public void product()    {        account++;        System.out.println(Thread.currentThread().getName()+"生产"+account);    }    public void pay()    {        System.out.println("\t\t\t"+Thread.currentThread().getName()+"消费"+account);    }}class Productor implements Runnable{    private Resource res;    Productor(Resource res)    {        this.res=res;    }    public void run()    {        synchronized(res)        {            while(res.getFlag())                try                {                    this.wait();                }                catch (Exception e)                {                    System.out.println("error");                }            res.product();            res.setFlag(true);            this.notifyAll();        }    }}class Consumer implements Runnable{    private Resource res;    Consumer( Resource res )    {        this.res=res;    }    public void run()    {        synchronized(res)        {            while(!res.getFlag())                try                {                    this.wait();                }                catch ( Exception e )                {                    System.out.println("error");                }            res.pay();            res.setFlag(false);            this.notifyAll();        }            }}



为什么一直都是error啊,wait()怎么就异常了呢?求解

[解决办法]
不对,改成:
res.wait();
res.notify();

热点排行