注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

曹兆领的博客

有志者事竟成,破釜沉舟,百二秦关终属楚!

 
 
 

日志

 
 

java 生产者消费者问题  

2009-01-16 10:27:08|  分类: Java开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


public class pca {

 /**
  * @param args
  */
 public static void main(String[] args) {
  Q q=new Q();
  new producer(q);
  new consumer(q);
  
  System.out.println("control -c to exit");
 }

}
class Q{
 int n;
 boolean avaliable=false;
 synchronized int get(){
  if(avaliable==false){
  try{
   wait();
  }catch(InterruptedException e){
   System.out.println("Interrupted exception");
  }
  }
  System.out.println("Get: "+n);
  avaliable=false;
  notify();
  return n;
 }
 synchronized void put(int n){
  if(avaliable==true){
   try{
    wait();
   }catch(InterruptedException e){
    System.out.println("InterruptedException");
   }
  }
   this.n=n;
   avaliable=true;
   System.out.println("put: "+n);
   notify();
  }
 }


class producer implements Runnable{
 Q q;
 producer(Q q){
  this.q=q;
  new Thread(this,"producer").start();
 }
 public void run(){
  int i=0;
  while(true){
   q.put(i++);
   //System.out.println("i am in producer: "+(--i));
  }
 }
}

class consumer implements Runnable{
 Q q;
 consumer(Q q){
  this.q=q;
  new Thread(this,"Consumer").start();
 }
 public void run(){
  while(true){
   q.get();
  }
 }
}

  评论这张
 
阅读(157)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017