-
大小: 44KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-05-16
- 語(yǔ)言: Java
- 標(biāo)簽: 電梯調(diào)度??java??
資源簡(jiǎn)介
用Java寫的電梯調(diào)度算法1,模擬操作系統(tǒng)的進(jìn)程調(diào)度,圖形界面

代碼片段和文件信息
//import?java.io.*;
import?java.util.*;
public?class?ElevatorThread?extends??Thread{
int?curPos?=?1;
boolean?direction?=?true;?//方向,?上--true;???下----false
boolean?status?=?false;?//電梯的狀態(tài)?true?-----正在運(yùn)行,?false----等待prey.
private?TubePanel?tubePanel;
int?threadID;
TreeSet?destSet?=?new?TreeSet();
public?ElevatorThread(?TubePanel?p){
tubePanel?=?p;
start();
}
public?void?setThreadID(?int?i?){
threadID??=?i;
}
public?synchronized?void?addDest(?int?dest?){
destSet.add(new?Integer(dest));
}
public?synchronized?void?addDestNotify(?int?dest?){
destSet.add(new?Integer(?dest?));
this.notify();
}
public??void?run(){
while(?true){
status?=?false;
try{
synchronized?(?this?){
wait();
}
status?=?true;
System.out.println(“Thread?“?+?threadID?+?“?begin?to?run“);
while(?!destSet.isEmpty()?){
Integer?integer?=?(Integer)destSet.first();
int?dest?=?(integer).intValue();
System.out.println(“dest?is?“?+?dest);
tubePanel.closeDoor();
//電梯關(guān)門?,?開(kāi)始向一個(gè)目的樓層行進(jìn)
while(?curPos?!=?dest?){
if(?curPos? ??curPos?++;
??direction?=?true;?
??tubePanel.setCurFloor(curPos);
????}else??{
???? ????curPos?--;
???? ????direction?=?false;
????tubePanel.setCurFloor(curPos);
???? ????
????}?
System.out.println(“Thread?“?+?threadID?+?“?now?at?“?+?curPos?);
sleep(500);
integer?=?(Integer)destSet.first();
dest?=?(integer).intValue();
}
//電梯開(kāi)門,?一個(gè)目標(biāo)樓層已到達(dá)
System.out.println(“Thread?“?+?threadID?+?“?arrive?at?“?+?curPos?+?“?Floor“?);
destSet.remove(integer);
tubePanel.openDoor();
sleep(2000);
}
tubePanel.allUnload();
//如果所有的目的樓層都經(jīng)過(guò)了,?則電梯的狀態(tài)為全部卸載
status?=?false;
}catch(?InterruptedException?e){
e.printStackTrace();
}
}
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2010-11-04?19:55??Elevator\
?????目錄???????????0??2010-11-04?19:55??Elevator\java代碼與class文件\
?????文件????????1033??2004-05-10?02:38??Elevator\java代碼與class文件\CallListener.class
?????文件????????2471??2004-05-10?02:33??Elevator\java代碼與class文件\ElevatorThread.class
?????文件????????1997??2004-05-10?02:33??Elevator\java代碼與class文件\ElevatorThread.java
?????文件??????????16??2004-05-10?02:56??Elevator\java代碼與class文件\run.bat
?????文件????????1669??2004-05-10?02:42??Elevator\java代碼與class文件\Scheduler.class
?????文件????????1812??2004-05-10?02:42??Elevator\java代碼與class文件\Scheduler.java
?????文件????????1637??2004-05-10?02:38??Elevator\java代碼與class文件\SView.class
?????文件????????1591??2004-05-10?03:17??Elevator\java代碼與class文件\SView.java
?????文件????????2671??2004-05-10?02:54??Elevator\java代碼與class文件\TubePanel.class
?????文件????????2381??2004-05-10?02:54??Elevator\java代碼與class文件\TubePanel.java
?????文件???????61952??2004-05-10?03:37??Elevator\電梯調(diào)度程序演示說(shuō)明.doc
評(píng)論
共有 條評(píng)論