在上一次中已经实现一个生产者与消费者的初步模型(http://www.cnblogs.com/webor2006/p/8413286.html),但是当时只是一个生产者对应一个消费者,先贴下代码:
public classProductConsumerVersion2 {private final Object LOCK = newObject();private int i = 1;/*此标识用来说明是否当前已经生产过了,默认没有*/
private volatile boolean isProduced = false;private voidproduct() {synchronized(LOCK) {if(isProduced) {try{
LOCK.wait();
}catch(InterruptedException e) {
e.printStackTrace();
}
}else{
i++;
System.out.println("P->" +i);
LOCK.notify();
isProduced= true;
}
}
}private voidcomsume() {synchronized(LOCK) {if(isProduced) {
System.out.println("C->" +i);
LOCK.notify();
isProduced= false;
}else{try{
LOCK.wait();
}catch(InterruptedException e) {
e.printStackTrace();
}
}
}
}public static voidmain(String[] args) {
ProductConsumerVersion2 productConsumerVersion2= newProductConsumerVersion2();new Thread("P") {
@Override
public void run() {
while (true)
productConsumerVersion2.product();
}
}.start();
new Thread("C") {
@Override
public void run() {