免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1373 | 回复: 0
打印 上一主题 下一主题

Java 实现生产者与消费者 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-20 17:07 |只看该作者 |倒序浏览
1.作业分Producwer,Consumer,Space,Apple,Test5个类编写。
2.Space为中转存储空间,Apple为标记生产物品。
3.所有类都存放于sycnchronized包内。
***********************************************************
package sycnchronized;
//产品标识
public class Apple {
int id;
public Apple(int id){
  this.id=id;
}
// public String toString(){
//  return ""+id;
// }
}
…………………………………………………………
package sycnchronized;
//产品的存储空间
public class Space {
  Apple ap[]=new Apple[10];
  int index=0;
  //产品存入
  public synchronized void push(Apple AP) {
   
   while(index==ap.length){
    try {
     
     this.wait();
     
    } catch (InterruptedException e) {
     // TODO 自动生成 catch 块
     e.printStackTrace();
    }
   }
   ap[index]=AP;
   index++;
   this.notify();
  }
// 产品的取出
  public synchronized Apple pop(){
   while (index==0){
    try {
     
     this.wait();
     
    } catch (InterruptedException e) {
     // TODO 自动生成 catch 块
     e.printStackTrace();
    }
   }
   index--;
   this.notify();
   return ap[index];
  }

}
……………………………………………………………………
package sycnchronized;
//摘苹果
public class Producer implements Runnable{
     Space sp=new Space();
     Producer (Space sp){
      this.sp=sp;
     }
public void run() {
  for(int i=0;i

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/55983/showart_2001594.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP