当前位置:编程学习 > JSP >>

生产者消费者模型的Java简单实现

答案: 

package testjava.thread;

public class SellBuy {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Q q = new Q();
  new Thread(new Producer(q)).start();
  new Thread(new Comsumer(q)).start();
  
 }

}
class Producer implements Runnable
{
 Q q;
 public Producer(Q q)
 {
  this.q=q;
 }
 public void run()
 {
  int i=0;
  while(true)
  {
   if(i==0)
    q.put("zhangsan","male");
   else
    q.put("lisi","femail");
   i=(i+1)%2; 
  }   
 }
}
class Comsumer implements Runnable
{
 Q q;
 public Comsumer(Q q)
 {
  this.q=q;
 }
 public void run()
 {
  while(true)
  {
   q.get();
  }
 }
}
class Q
{
 String name="unknown";
 String sex="unkonwn";
 boolean bFull=false;
 public synchronized void put(String name,String sex)
 {
  if(bFull)
   try {wait();} catch (Exception e) {}
  this.name=name;
  try {Thread.sleep(1);} catch (Exception e) {}
  this.sex=sex;
  bFull=true;
  notify();
 }
 public synchronized void get()
 {
  if(!bFull)
   try {wait();} catch (Exception e) {} 
  System.out.println(name+":"+sex);
  bFull=false;
  notify();
  
 }
}

上一个:完全掌握java中的包机制
下一个:JAVA 中 jar 文件的编写和应用

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,