多线程四

来源:互联网 发布:伊朗 美女 知乎 编辑:程序博客网 时间:2024/06/02 21:48
利用yeild方法来实现 :   生产者-消费者模型(主动放弃cpu但又去但与竞争)cpu表示压力很大


生产者类 
class FlagSend implements Runnable{int theValue;boolean flag;@Overridepublic 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;}@Overridepublic 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();}



0 0
原创粉丝点击