• 大小: 44KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: Java
  • 标签: 电梯调度  java  

资源简介

用Java写的电梯调度算法1,模拟操作系统的进程调度,图形界面

资源截图

代码片段和文件信息


//import java.io.*;
import java.util.*;

public class ElevatorThread extends  Thread{
int curPos = 1;
boolean direction = true; //方向, 上--true;   下----false
boolean status = false; //电梯的状态 true -----正在运行, 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();
//电梯关门 , 开始向一个目的楼层行进
while( curPos != dest ){
if( curPos < dest ){
  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();
}
//电梯开门, 一个目标楼层已到达
System.out.println(“Thread “ + threadID + “ arrive at “ + curPos + “ Floor“ );
destSet.remove(integer);
tubePanel.openDoor();
sleep(2000);
}
tubePanel.allUnload();
//如果所有的目的楼层都经过了, 则电梯的状态为全部卸载
status = false;
}catch( InterruptedException e){
e.printStackTrace();
}

}
}

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           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\电梯调度程序演示说明.doc

评论

共有 条评论