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

📄 jlab0801b.java

📁 华中科技大学JAVA课程所有实验源码及截图 本校的同学可以不用辛苦地敲键盘了 外校同学可以看看
💻 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 + -