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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奋上 中级黑马   /  2014-8-1 21:01  /  1146 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. 生产者,消费者的例子
  3. 必须写while循环、notifyAll
  4. */



  5. class Res
  6. {
  7.         private String name;
  8.         private int count = 1;
  9.         private boolean flag = false;
  10.         public synchronized void set(String name)
  11.         {
  12.                 while (flag)
  13.                 {
  14.                         try{wait();}catch(Exception e){}
  15.                         this.name = name+count++;
  16.                         System.out.println(Thread.currentThread().getName()+"...生产者.."+this.name);
  17.                         flag = true;
  18.                         this.notifyAll();
  19.                 }
  20.         }

  21.         public synchronized void show()
  22.         {
  23.                 while (!flag)
  24.                 {
  25.                         try{wait();}catch(Exception e){}
  26.                         System.out.println(Thread.currentThread().getName()+"...消费者.........."+this.name);
  27.                         flag = false;
  28.                         this.notifyAll();
  29.                 }
  30.         }
  31. }


  32. class Pro implements Runnable
  33. {
  34.         private Res r;
  35.         Pro(Res r)
  36.         {
  37.                 this.r = r;
  38.         }

  39.         public void run()
  40.         {
  41.                 while (true)
  42.                 {
  43.                         r.set("商品");
  44.                 }
  45.         }
  46. }


  47. class Con implements Runnable
  48. {
  49.         private Res r;
  50.         Con(Res r)
  51.         {
  52.                 this.r = r;
  53.         }

  54.         public void run()
  55.         {
  56.                 while (true)
  57.                 {
  58.                         r.show();
  59.                 }
  60.         }
  61. }


  62. class  ProConDemo
  63. {
  64.         public static void main(String[] args)
  65.         {
  66.                 Res r = new Res();

  67.                 Pro p = new Pro(r);
  68.                 Con c = new Con(r);

  69.                 Thread t1 = new Thread(p);
  70.                 Thread t2 = new Thread(p);
  71.                 Thread t3 = new Thread(c);
  72.                 Thread t4 = new Thread(c);

  73.                 t1.start();
  74.                 t2.start();
  75.                 t3.start();
  76.                 t4.start();
  77.         }
  78. }
复制代码


231628wzr2egyrn02g6grz.jpg.thumb.jpg (39.7 KB, 下载次数: 8)

231628wzr2egyrn02g6grz.jpg.thumb.jpg

6 个回复

倒序浏览
遇到同样的问题。所以基本纯英文写了
回复 使用道具 举报
江苏孙浩 发表于 2014-8-1 21:08
遇到同样的问题。所以基本纯英文写了

纯英文通过了吗?我改成英文的还是这样
回复 使用道具 举报
奋上 发表于 2014-8-1 21:26
纯英文通过了吗?我改成英文的还是这样

你这个我去掉中文也没有通过
回复 使用道具 举报
有没有大神?难道没人知道这个编译后为什么是这样?
回复 使用道具 举报
:Q来人,先看看我写的有没有问题
回复 使用道具 举报
M单色调 来自手机 中级黑马 2014-8-2 04:19:37
7#
我在那个Properties练习的时候也遇见这种问题了,后来路径改成全英文的也还是不过!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马