黑马程序员技术交流社区

标题: 大家帮我看下这个程序怎么运行没反应~ [打印本页]

作者: 乐此不疲    时间: 2014-7-28 20:46
标题: 大家帮我看下这个程序怎么运行没反应~
  1. public class ProducerConsumerTest {

  2.         public static void main(String[] args) {
  3.                 Resource res = new Resource();
  4.                 Producer p = new Producer(res);
  5.                 Consumer c = new Consumer(res);
  6.                
  7.                 Thread t1 = new Thread(p);
  8.                 Thread t2 = new Thread(c);
  9.                 Thread t3 = new Thread(p);
  10.                 Thread t4 = new Thread(c);
  11.                 t1.start();
  12.                 t2.start();
  13.                 t3.start();
  14.                 t4.start();

  15.         }

  16. }

  17. class Resource{
  18.         private String name;
  19.         private int count = 1;
  20.         private boolean flag = false;
  21.         public synchronized void set(String name){
  22.                 while(flag){
  23.                                 try{this.wait();}catch(Exception e){}
  24.                         this.name = name+"..."+count++;
  25.                         System.out.println(Thread.currentThread().getName()+"---生产者---"+this.name);
  26.                         flag = true;
  27.                         this.notifyAll();
  28.                 }
  29.         }
  30.         public synchronized void out(){
  31.                 while(!flag){
  32.                                 try{this.wait();}catch(Exception e){}
  33.                         System.out.println(Thread.currentThread().getName()+"-----消费者-----"+this.name);
  34.                         flag = false;
  35.                         this.notifyAll();
  36.                 }
  37.         }
  38. }
  39. class Producer implements Runnable{
  40.         private Resource res;
  41.         Producer(Resource res){
  42.                 this.res = res;
  43.         }
  44.         public void run() {
  45.                 while(true){
  46.                         res.set("zhangsan");
  47.                 }
  48.         }
  49.        
  50. }
  51. class Consumer implements Runnable{

  52.         private Resource res;
  53.         Consumer(Resource res){
  54.                 this.res = res;
  55.         }
  56.         public void run() {
  57.                 while(true){
  58.                         res.out();
  59.                 }
  60.         }
  61.        
  62. }
复制代码

看毕姥爷多线程视频写的生产者消费者,运行没反应,麻烦大家来瞅瞅
作者: 0小菜鸟0    时间: 2014-7-28 21:03
沙发 我还没看到哪里了




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