当前位置: 代码迷 >> J2SE >> 《java就业培训课程》的一道题
  详细解决方案

《java就业培训课程》的一道题

热度:55   发布时间:2016-04-24 00:27:19.0
《java就业培训教程》的一道题
Java code
public class ThreadCommunication_4{    public static void main(String[] args)    {        Q q= new Q();        new Thread(new Producer(q)).start();        new Thread(new Consumer(q)).start();    }}class Q{    private String name = "张孝祥";    private String sex = "男";    boolean bFull=false;        public synchronized void put(String name, String sex)    {        if(bFull)        {          try            {                wait();            }            catch(Exception e)            {                System.out.println(e.getMessage());            }        }            this.name = name;            try            {                Thread.sleep(10);            }            catch(Exception e)            {                System.out.println(e.getMessage());            }        this.sex=sex;        bFull = true;        notify();    }    public synchronized void get()    {        if(!bFull)        {            try            {                    wait();            }            catch(Exception e)            {                System.out.println(e.getMessage());            }        }        System.out.println(name+"----->"+sex);        bFull=false;        notify();    }}class  Producer implements Runnable{    Q q = null;    public Producer(Q q)    {        this.q=q;    }    public void run()    {        int i = 0;        while(true)        {            if(i == 0)            {                q.put("张孝祥","男");            }            else            {                q.put("陈琼","女");            }            i = (i+1)%2;        }    }}class Consumer implements Runnable{    Q q =null;    public Consumer(Q q)    {        this.q=q;    }    public void run()    {        q.get();    }


为什么测试的结果和书上的不一样啊 
书上的结果是:
-----------------------
张孝祥----->男
陈琼------>女
......
-----------------------
我的结果只有
---------------
张孝祥----->男
---------------
这是为什么???

------解决方案--------------------
Java code
 public void run()    {        q.get();    }
  相关解决方案