黑马程序员技术交流社区

标题: 我的代码怎么运行不起来呢,纠结呐,是我打错哪里了吗 [打印本页]

作者: 戒爱    时间: 2014-2-17 14:13
标题: 我的代码怎么运行不起来呢,纠结呐,是我打错哪里了吗
我的代码怎么运行不起来呢,纠结呐,是我打错哪里了吗
  1. public class ProducerConsumerDemo {
  2.         public static void mian(String args[]) {
  3.                 Resource r = new Resource();
  4.                 Producer pr = new Producer(r);
  5.                 Consumer co = new Consumer(r);
  6.                 new Thread(pr).start();
  7.                 new Thread(co).start();
  8.         }
  9. }
  10. /*
  11. * 资源中心*/
  12. class Resource {
  13.         private String name;
  14.         private int count = 1;
  15.         private boolean flag = false;
  16.        
  17.         //生产
  18.         public synchronized void set(String name) {
  19.                 if(flag)
  20.                         try{this.wait();}catch(Exception e) {}
  21.                 this.name = name +"---"+count++;
  22.                 System.out.println(Thread.currentThread().getName()+"...生产..."+this.name);
  23.                 flag = false;
  24.                 this.notify();
  25.         }
  26.         //消费
  27.         public synchronized void out() {
  28.                 if(!flag)
  29.                         try{this.wait();}catch(Exception e) {}
  30.                 System.out.println(Thread.currentThread().getName()+".......消费..."+this.name);
  31.                 flag = true;
  32.                 this.notify();
  33.         }
  34. }

  35. //生产者
  36. class Producer implements Runnable {
  37.         private Resource res;
  38.         Producer(Resource res)
  39.         {
  40.                 this.res = res;
  41.         }
  42.         public void run()
  43.         {
  44.                 while(true)
  45.                         res.set("*面包*");
  46.         }
  47. }

  48. //消费者
  49. class Consumer implements Runnable {
  50.         private Resource res;
  51.         Consumer(Resource res)
  52.         {
  53.                 this.res = res;
  54.         }
  55.         public void run()
  56.         {
  57.                 while(true)
  58.                         res.out();
  59.         }
  60. }
复制代码






作者: 李金中    时间: 2014-2-17 15:12
main()拼写错误。。。
加分么。。。
作者: e.c    时间: 2014-2-17 15:12
main方法你写错成mian了

生产方法里:flag = true;消费方法里:flag = false;不然会总是生产,或总是消费。
if(flag){...}最好用while(flag){...}
作者: 疲劳的小马    时间: 2014-2-17 15:42
main()拼写错了。。。
作者: 李金中    时间: 2014-2-17 16:17
李金中 发表于 2014-2-17 15:12
main()拼写错误。。。
加分么。。。

哈哈,不该。。。只是分分好难得额~~以为会有流星撞地球。。。。。。。
作者: 戒爱    时间: 2014-2-18 13:32
李金中 发表于 2014-2-17 15:12
main()拼写错误。。。
加分么。。。

恩恩,原来如此,多谢
作者: 戒爱    时间: 2014-2-18 13:33
e.c 发表于 2014-2-17 15:12
main方法你写错成mian了

生产方法里:flag = true;消费方法里:flag = false;不然会总是生产,或总是消费 ...

多谢大侠相助




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