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

王朝java/jsp·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

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();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航