📄 jlab0801b.java
字号:
class ProduceInteger extends Thread{
private HoldInteger sharedObject;
public ProduceInteger(HoldInteger shared){
super("ProduceInteger");
sharedObject=shared;
}
public void run(){
for(int count=1;count<10;count++){
try{
Thread.sleep((int)(Math.random()*3000));
}catch(InterruptedException e){
System.err.println(e.toString());
}
sharedObject.setSharedInt(count);
}
System.err.println(getName()+" finished producing values"
+"\nTerminating "+getName());
}
}
class ConsumeInteger extends Thread{
private HoldInteger sharedObject;
public ConsumeInteger(HoldInteger shared){
super("ConsumeInteger");
sharedObject=shared;
}
public void run(){
int value,sum=0;
do{
try{
Thread.sleep((int)(Math.random()*3000));
}catch(InterruptedException e){
System.err.println(e.toString());
}
value=sharedObject.getSharedInt();
sum+=value;
}while(value<=8);
System.err.println(getName()+" received values totaling:"+
sum+"\nTerminating "+getName());
}
}
class HoldInteger{
private int sharedInt=-1;
public void setSharedInt(int value){
System.err.println(Thread.currentThread().getName()+
" setting sharedInt to "+value);
sharedInt=value;
}
public int getSharedInt(){
System.err.println(Thread.currentThread().getName()+
" received sharedInt value "+sharedInt);
return sharedInt;
}
}
public class JLab0801B{
public static void main(String[] args){
HoldInteger sharedObject=new HoldInteger();
ProduceInteger producer=new ProduceInteger(sharedObject);
ConsumeInteger consumer=new ConsumeInteger(sharedObject);
producer.start();
consumer.start();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -