外観は次のとおりです。
そして、これが私のコードです:
import java.util.*;
import java.io.*;
public class ProcessSchedulingDemo {
public static void main(String[] args) throws IOException {
File file = new File("process-schedule.txt");
Scanner inputFile = new Scanner(file);
ArrayList<Process> processes = new ArrayList<Process>();
// Skip past the first line, which is the column headers
inputFile.nextLine();
while (inputFile.hasNext()) {
int processID = Integer.parseInt(inputFile.next());
int timeUnitsRequired = Integer.parseInt(inputFile.next());
int priority = Integer.parseInt(inputFile.next());
int timeOfArrival = Integer.parseInt(inputFile.next());
// Create and add to process a new process based on the information given
Process process = new Process(processID, timeUnitsRequired, priority, timeOfArrival);
processes.add(process);
}
Scanner keyboard = new Scanner(System.in);
System.out.print("How much time does the CPU hold onto each process? ");
int holdTime = keyboard.nextInt();
if (holdTime <= 0) {
while (holdTime <= 0) {
System.out.print("Value must be greater than 0. Please input new value: ");
holdTime = keyboard.nextInt();
}
}
Heap<Process> processHeap = new Heap<Process>();
// Holds a particular process being processed
Process[] CPU = new Process[1];
CPU[0] = null;
int turn = 1;
int timeSlices = 0;
do {
// Check if the list of processes has processes that should be added at the current turn
for (int i = processes.size() - 1; i >= 0; i--) {
if (processes.get(i).getTimeOfArrival() == turn) {
processHeap.add(processes.remove(i));
}
}
// Print current standing of the processHeap at the beginning of the turn
processHeap.enumerate();
// If there currently isn't an item being processed by the CPU
if (CPU[0] == null) {
CPU[0] = processHeap.deleteMax();
timeSlices = holdTime;
System.out.println("got to cpu setting");
}
if (CPU[0].getTimeUnitsRequired() == 0 || timeSlices == 0) {
if (CPU[0].getTimeUnitsRequired() > 0) {
processHeap.add(CPU[0]);
}
CPU[0] = null;
}
else {
CPU[0].setTimeUnitsRequired(CPU[0].getTimeUnitsRequired() - 1);
timeSlices--;
if (CPU[0].getTimeUnitsRequired() == 0 || timeSlices == 0) {
if (CPU[0].getTimeUnitsRequired() > 0) {
processHeap.add(CPU[0]);
}
CPU[0] = null;
}
}
if (CPU[0] != null) {
System.out.println("-- STATE OF CPU --");
System.out.println("[" + CPU[0].getProcessID() + ", " + CPU[0].getTimeUnitsRequired() + ", " + CPU[0].getPriority() + "]\n");
}
turn++;
} while (processes.size() != 0 && processHeap.size() != 0);
}
}
一体何がそれを引き起こしているのですか?保存するたびにポップアップします。ああ。(Eclipseを使用)