A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 wangaz 于 2015-6-1 14:00 编辑

记录一下学习过程中的点滴~
class ProducerConsumerDemo
{
        public static void main(String[] args)
        {
                Resource res = new Resource();
                Producer pro = new Producer(res);
                Consumer con = new Consumer(res);
                Thread d1 = new Thread(pro);
                Thread d2 = new Thread(pro);
                Thread d3 = new Thread(con);
                Thread d4 = new Thread(con);
                d1.start();
                d2.start();
                d3.start();
                d4.start();
        }
}

/*
        resource
*/
class Resource
{
        private String name;
        private int count = 1;
        private boolean flag = false;
        public synchronized void set(String name)
        {
                while(flag)
                        try{this.wait();} catch(Exception e){}
                this.name = name + "---" + count++;
                System.out.println(Thread.currentThread().getName() + "production" + this.name);
                this.flag = true;
                this.notifyAll();
        }
        public synchronized void out()
        {
                while(!flag)
                        try{this.wait();} catch(Exception e){}
                System.out.println(Thread.currentThread().getName() + "----consumption----" + this.name);
                this.flag = false;
                this.notifyAll();
        }

}

/*
        production
*/
class Producer implements Runnable
{
        private Resource res;
        Producer(Resource res)
        {
                this.res = res;
        }
        public void run()
        {
                while(true)
                {
                        res.set("+haha+");
                }
        }
}

/*
        consumer
*/
class Consumer implements Runnable
{
        private Resource res;
        Consumer(Resource res)
        {
                this.res = res;
        }
        public void run()
        {
                while(true)
                {
                        res.out();
                }
        }
}

1 个回复

正序浏览
沙发沙发沙发沙发
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马