package com.bjxst_3;
public class Ck {
private char capacity[]=new char[8];
private int wp=0;
public synchronized void productor(char aa){
while(wp==capacity.length){
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
this.notify();
capacity[wp]=aa;
++wp;
System.out.println("生产者正在生产第"+wp+"个产品"+"该产品是"+aa);
}
public synchronized void Customer(){
char aa;
while(wp==0){
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
this.notify();
aa=capacity[wp-1];
--wp;
System.out.println("消费证正在消费"+(wp+1)+"个产品"+"该商品是"+aa);
}
}
package com.bjxst_3;
class Shengchan implements Runnable{
private Ck ck;
public Shengchan(Ck ck){
this.ck=ck;
}
@Override
public void run() {
char aa;
for(int i=0;i<26;i++){
aa=(char)('A'+i);
ck.productor(aa);
}
}
}
class Xc implements Runnable{
private Ck ck;
public Xc(Ck ck){
this.ck=ck;
}
@Override
public void run() {
for(int i=0;i<26;i++){
ck.Customer();
}
}
}
public class Test {
public static void main(String[] args) {
Ck c=new Ck();
new Thread(new Shengchan(c)).start();
new Thread(new Xc(c)).start();
}
}