📄 finishevent.java
字号:
package simcpu;
public class FinishEvent extends Event {
public FinishEvent(int time, EventDriver driver, SimSystem sys) {
super(time, driver, sys);
}
@Override
public void handel() {
SimThread nextThread = sys.schedul();
SimThread curThread = sys.getRunningThread();
curThread.setState(State.TERMINTED);
curThread.setFinishTime(driver.getNow());
curThread.setRoundTime(driver.getNow()-curThread.getArrivalTime());
sys.setRunningThread(null);
DataSource.addTurnroundTime(curThread.getRoundTime());
if(nextThread==null || nextThread==curThread) {
sys.setCpuBusy(false);
return;
}
sys.readyQueue.remove(nextThread);
int overhead = (curThread.getPid() == nextThread.getPid() ? DataSource
.getThreadSwith() : DataSource.getProcessSwitch());
driver.predict(new OverheadEvent(driver.now + overhead, driver, sys,
nextThread));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -