粗略代码:
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();
}
}