jlab0801b.java
来自「华中科技大学JAVA课程所有实验源码及截图 本校的同学可以不用辛苦地敲键盘了 」· Java 代码 · 共 69 行
JAVA
69 行
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 + =
减小字号Ctrl + -
显示快捷键?