jlab0802.java
来自「计算机系学习java的专用ppt」· Java 代码 · 共 67 行
JAVA
67 行
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 exception){
System.err.println(exception.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 exception){
System.err.println(exception.toString());
}
value=sharedObject.getSharedInt();
sum+=value;
}while(value!=10);
System.err.println(getName()+"retrieved 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()+
"retrieving sharedInt value"+sharedInt);
return sharedInt;
}
}
public class JLab0802{
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 + =
减小字号Ctrl + -
显示快捷键?