利用yeild方法来实现 : 生产者-消费者模型(主动放弃cpu但又去但与竞争)cpu表示压力很大
生产者类
class FlagSend implements Runnable{
int theValue;
boolean flag;
@Override
public void run() {
for (int i = 0; i < 5; i++) {
while(flag){
Thread.yield();
}
theValue = new Random().nextInt(1000); //制造食物
System.out.println("send the value is:"+theValue);
//自己去等待,让食客去消费
flag = true;
}
}
消费者类
class FlagRec implements Runnable{
private FlagSend flagSend;
public FlagRec(FlagSend flagSend) {
super();
this.flagSend = flagSend;
}
@Override
public void run() {
for (int i = 0; i < 5; i++) {
while(!flagSend.flag){
Thread.yield();
}
System.out.println("reciver the value is:"+flagSend.theValue);
flagSend.flag = false;
}
}
}
主方法
public static void main(String[] args) {
FlagSend send = new FlagSend();
FlagRec rec = new FlagRec(send);
Thread t1 = new Thread(send);
Thread t2 = new Thread(rec);
t1.start();
t2.start();
}