黑马程序员技术交流社区

标题: 求助!!!到底哪里出问题了 [打印本页]

作者: wuyusi    时间: 2015-5-31 15:27
标题: 求助!!!到底哪里出问题了
本帖最后由 wuyusi 于 2015-5-31 17:29 编辑

class XiaoFei
{
        public static void main(String [] args)
        {
        Resc r = new Resc();
        new Thread(new Pro(r)).start();
        new Thread(new Con(r)).start();
        }
}

class Resc  
{
        private String name;
        private int count=1;
        private boolean flag = false;
        public synchronized void set(String name)
        {
                if(flag)
                {
                        try
                        {
                                wait();
                        }
                        catch (Exception e)
                        {
                        }
                }
                this.name=name+"...."+count++;
                System.out.println(Thread.currentThread().getName()+"..."+this.name);
                flag = true;
                notify();

        }
        public synchronized void get()
        {
                if(!flag)
                {
                        try
                        {
                                wait();
                        }
                        catch (Exception e)
                        {
                        }
                }
        System.out.println(Thread.currentThread().getName()+"..."+this.name);
                flag = false;
                notify();
        }
}


class Pro implements Runnable
{

        private Resc r;
        Pro(Resc r)
        {
                this.r = r;
        }
        public void run()
        {
                while(true)
                {
                r.set("商品");
                }
        }
}
class Con implements Runnable
{

        private Resc r;
        Con(Resc r)
        {
                this.r = r;
        }
        public void run()
        {
                while(true)
                {
                r.get();
                }
        }
}

QQ图片20150531151816.png (4.87 KB, 下载次数: 18)

编译异常

编译异常

作者: 风之旅人    时间: 2015-5-31 16:17
Con是操作系统保留字,你把你的类名Con更改为其它名称,即可
相应的还有一些其他的操作系统保留字:PRN, AUX, CLOCK$, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9
作者: forTomorrow    时间: 2015-5-31 16:19
异常捕捉到后没做处理吧,其他看了下似乎没错
作者: wuyusi    时间: 2015-5-31 16:21
风之旅人 发表于 2015-5-31 16:17
Con是操作系统保留字,你把你的类名Con更改为其它名称,即可
相应的还有一些其他的操作系统保留字:PRN, AU ...

问题已解决,太谢谢你了
作者: forTomorrow    时间: 2015-5-31 16:22
你那个wait() 和notify()前面应该加上this.表示同一把锁
作者: wuyusi    时间: 2015-5-31 16:36
forTomorrow 发表于 2015-5-31 16:22
你那个wait() 和notify()前面应该加上this.表示同一把锁

是Con的问题,改一下就好了
对象唯一,不加this也可以
作者: 风之旅人    时间: 2015-5-31 16:40
wuyusi 发表于 2015-5-31 16:21
问题已解决,太谢谢你了

哈哈,大家共同进步,共勉共勉




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2