黑马程序员技术交流社区

标题: 多线程间的通讯问题解决 [打印本页]

作者: 史世锋    时间: 2015-9-17 23:02
标题: 多线程间的通讯问题解决
package com.itheima;

//定义一个商品类
class Goods1
{
        String name;
        String use;
}

//定义生产者类,用来生产商品
class Producer1 implements Runnable
{
        Goods1 good;
        Producer1(Goods1 good)
        {
                this.good = good;
        }
        @Override
        public void run()
        {
                boolean flag = true;
                while(true)
                {
                        synchronized(Goods1.class)
                        {
                                if(flag)
                                {
                                        //生产者生产一个篮球
                                        good.name = "basketball";
                                        good.use = "play";
                                        flag = false;
                                }
                                else
                                {
                                        //生产者生产一个面包
                                        good.name = "面包";
                                        good.use = "吃的";
                                        flag = true;
                                }
                        }
                       
                }
        }
}

//定义消费者类,用来消费商品
class Consumer1 implements Runnable
{
        Goods1 good;
        Consumer1(Goods1 good)
        {
                this.good = good;
        }
        @Override
        public void run()
        {
                while(true)
                {
                        synchronized(Goods1.class)
                        {
                                //消费者消费商品
                                System.out.println(good.name + "---" + good.use);
                        }
                       
                }
               
        }
}
public class Test028
{

        /**
         * @param args
         */
        public static void main(String[] args)
        {
                Goods1 good = new Goods1();
                Producer1 producer = new Producer1(good);
                Consumer1 consumer = new Consumer1(good);
                new Thread(producer).start();
                new Thread(consumer).start();
        }

}







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