⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap9-6.txt

📁 JAVA 学习资源
💻 TXT
字号:
// 程序9-6
class comm{	// 定义共享类
    private int n;
    private boolean bool=false; 	// 通过此共享变量实现同步

    void produce(int i) {// 产生一个数
        while(bool) {  // 若bool为真,则执行空循环,否则继续执行
         }
        n=i;		// 产生的数为n
        bool=true;	// 产生数n以后,若再调用produce则将执行空循环
        System.out.println("\n 产生数据:"+n);
    }

    void readout( ) {		// 读取一个数
        while(!bool) {  	// 若bool为假,则执行空循环,否则继续执行
         }
        bool=false;		// 读取数n以后,若再调用produce则将执行空循环
        System.out.println(" 读取数据:"+n);	// 代表读取n
    }
}

class dataProducer implements Runnable{	// 读取数据类
    comm  cm;

    dataProducer(comm c) {		// cm 和 c 代表一个对象
        cm=c;
    }

    public void run( ) {
        for(int i=0;i<5;i++)
            cm.produce((int)(Math.random( )*100));	// 生产者产生5个随机数
    }
}

class dataConsumer implements Runnable{
    comm  cm;

    dataConsumer(comm c) {
        cm=c;
    }

    public void run( ) {
        for(int i=0;i<5;i++) 		// 消费者读取数据
            cm.readout( );
    }
}

public class multTheadThree {  // 主类
    public static void main(String args[ ]) {
        comm cm=new comm( );
        Thread t1=new Thread(new dataProducer(cm)); // 产生一个无名对象作为参数
        Thread t2=new Thread(new dataConsumer(cm));
        
        t1.start( );
        t2.start( );
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -