class Ck{
private char[] rl=new char[8];
private int up=0;
public synchronized void shengchan(char aa){
while(up==rl.length){
try{
this.wait();
}
catch(Exception e){
}
}
this.notify();//叫醒另一个线程,是在当前线程处于就绪状态的前提下
rl[up]=aa;
++up;
System.out.println("生产线程正在生产第"+up+"个产品,该产品是:"+aa);
}
public synchronized void xiaofei(){
char aa;
while(up==0){
try{
this.wait();
}
catch(Exception e){
}
}
this.notify();
aa=rl[up-1];//
System.out.println("消费线程正在消费低第"+up+"个产品,该产品是"+aa);
--up;
}
}
class Sc implements Runnable{
private Ck xc=null;
public Sc(Ck xc){
this.xc=xc;
}
public void run(){
char aa;
for(int i=0;i<26;i++){
aa=(char)('A'+i);
xc.shengchan(aa);
}
}
}
class Xf implements Runnable{
private Ck xc=null;
public Xf(Ck xc){
this.xc=xc;
}
public void run(){
for(int i=0;i<26;i++){
xc.xiaofei();
}
}
}
public class Test{
public static void main(String[] args){
Ck ck=new Ck();
Sc sc=new Sc(ck);
Xf xf=new Xf(ck);
Thread xc1=new Thread(sc);
xc1.start();
Thread xc2=new Thread(xf);
xc2.start();
}
}
生产消费问题
猜你喜欢
转载自blog.csdn.net/WYJ____/article/details/82596321
今日推荐
周排行