您的位置:首页 > 其它

编写一个多线程程序,模拟2个生产者生产产品,3个消费者消费产品。2个生产者不停的生产商品3个消费者不停的消费产品。

2015-01-08 21:01 666 查看
粗略代码:

class Resource
{
private String name;
private int count = 0;
private boolean flag = true;
Resource(String name)
{
this.name = name;
}

public synchronized void product()
{
if(flag)
{
this.name = "---"+this.count;
System.out.println(Thread.currentThread().getName() + "生产者---" + this.name);
}

flag  = false;
this.count++;
}

public synchronized void consume()
{
if(!flag)
{
System.out.println(Thread.currentThread().getName() + "消费者---------" + this.name);
}

flag = true;
}
}

class Product implements Runnable
{
private Resource sr;
Product(Resource sr)
{
this.sr = sr;
}

public void run()
{
while(true)
{
if(sr != null)
{
sr.product();
}
}
}
}

class Consume implements Runnable
{
private Resource sr;
Consume(Resource sr)
{
this.sr = sr;
}

public void run()
{
while(true)
{
if(sr != null)
{
sr.consume();
}
}
}
}
class DemoRunnable
{
public static void main(String[] args)
{
Resource sr = new Resource("产品");
Product p = new Product(sr);
Consume c =new Consume(sr);
Thread t1 = new Thread(p);
Thread t2 = new Thread(p);
Thread c1 = new Thread(c);
Thread c2 = new Thread(c);
Thread c3 = new Thread(c);
t1.start();
t2.start();
c1.start();
c2.start();
c3.start();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐