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

📄 新建 文本文档.txt

📁 模拟通道的通信过程
💻 TXT
字号:
package channel;

public class ChannelManager implements Runnable{
	
	private static final int NONE=0;
	
	private static final int INIT=1; 

	private static final int FINISH=2;
	
	private int interrupt=NONE;
	
	private Device device=new Device();
	
	private char[][] memory={{'l','o','v','e',' ', ' ', ' ',' ',' ', ' ',' ',' '},{'c','h','a','n','n','e','l',' ',' ',' ',' ',' '},{'a','r','c','h','i','t','e','c','t','u','r','e'}};

	public ChannelManager(int interrupt){
		this.interrupt=interrupt;
	}
	public void run() {
		while(true){
			if(this.interrupt==NONE){
				System.out.println("The cpu is doing some thing...");
				System.out.println("The cpu is doing some thing...");
				interrupt=INIT;
//				break;
			}
			if(this.interrupt==INIT){
				System.out.println("CPU is interrupt");
				System.out.println("This is I/O Init instruction,The channalManager is init the device...");
				device.memoryToDevice(memory);
				interrupt=FINISH;
//				break;
			}
			if(this.interrupt==FINISH){
				System.out.println("CPU is interrupt");
				System.out.println("This is I/O Finish instruction,The channalManager is close the device...");
				break;
			}
		}
		
	}

	public int getInterrupt() {
		return interrupt;
	}

	public void setInterrupt(int interrupt) {
		this.interrupt = interrupt;
	}
	
}
package channel;

public class Device {
	//设备存放字节的数组的长度
	private int Maxdevcap=12;
	//可用设备的个数
	private static final int ACTDEVICENUM=3;
	//
	private int actCap=30;
	
	private char[] data=new char[30];
	
	private static Device devices[] =new Device[ACTDEVICENUM];
	
	static{
		for(int i=0;i<devices.length;i++){
			devices[i]=new Device();
		}
	}
	public void memoryToDevice(char[][] memory){
		for(int i=0;i<Maxdevcap;i++){
			for(int j=0;j<ACTDEVICENUM;j++){
				if(i<devices[j].actCap){
					devices[j].data[i]=memory[j][i];
					System.out.println("设备"+j+":内容:"+memory[j][i]);
				}
			}
		}
	}
}
package channel;

public class Run {
	ChannelManager channelManager=new ChannelManager(0);
	public void show(){
		Thread thread=new Thread(channelManager);
		thread.start();
	}
	public static void main(String[] args){
		new Run().show();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -