/**
*
* @author jerry
*/
public class Main{
public static void main (String[] args) {
Share share=new Share();
Producer p=new Producer(share,1);
Consumer c=new Consumer(share,1);
p.start();
c.start();
}
}
/**
*
* @author jerry
*
*/
public class Consumer extends Thread
{
private Share shared;
private int number;
public Consumer(Share s, int number)
{
shared = s;
this.number = number;
}
public void run()
{
int value = 0;
for (int i = 0; i < 10; i++)
{
value = shared.get();
System.out.println("消费者" + this.number + " 得到的数据为:" + value);
}
}
}
/**
*
* @author gx_jin
*
*/
public class Share
{
private int contents;
private boolean available = false;
public synchronized int get()
{
while (available == false)
{
try
{
wait();
} catch (InterruptedException e)
{
}
}
available = false;
notifyAll();
return contents;
}
public synchronized void put(int value)
{
while (available == true)
{
try
{
wait();
} catch (InterruptedException e)
{
}
}
available = true;
notifyAll();
contents = value;
}
}
/**
*
* @author gx_jin
*/
public class Producer extends Thread
{
private Share shared;
private int number;
public Producer(Share s, int number)
{
shared = s;
this.number = number;
}
public void run()
{
for (int i = 0; i < 10; i++)
{
shared.put(i);
System.out.println("生产者" + this.number + " 输出的数据为:" + i);
try
{
sleep((int) (Math.random() * 100));
} catch (InterruptedException e)
{
}
}
}
}