class Ck{
private char[] rl=new char[8];
private int wp=0;
public synchronized void shengchan(char aa){
while(wp==rl.length){
try{
this.wait();
}catch(Exception e){
}
}
this.notify();//是当前线程处于就绪状态的前提下,叫醒另一个线程
rl[wp]=aa; ++wp;
System.out.println("生产线程正在生产第"+wp+"个产品,该产品是:"+aa);
}
public synchronized void xiaofei(){
char aa;
while(wp==0){
try{
this.wait();
}catch(Exception e){
}
}
this.notify();
aa=rl[wp-1];
System.out.println("消费线程正在消费第"+wp+"个产品,该产品是:"+aa);
--wp;
}
}
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 L6_9 {
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();
}
}
线程---生产消费问题
最新推荐文章于 2022-09-11 16:58:01 发布