📄 chap9-6.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 + -