fcfs算法java
时间: 2023-12-16 16:00:59 浏览: 67
FCFS(First Come, First Served)算法是一种简单的调度算法,它按照作业到达的先后顺序进行调度,先到先服务。
在Java中实现FCFS算法的关键是使用一个队列来存储待执行的作业,并按照到达时间将作业依次入队。同时需要一个变量来记录当前时间。首先,将作业按照到达时间排序,然后按照先到先服务的原则依次执行作业。
下面是一个简单的FCFS算法的Java实现示例:
```java
import java.util.*;
class Job {
int id; // 作业标识
int arrivalTime; // 到达时间
int burstTime; // 执行时间
public Job(int id, int arrivalTime, int burstTime) {
this.id = id;
this.arrivalTime = arrivalTime;
this.burstTime = burstTime;
}
}
public class FCFSAlgorithm {
public static void main(String[] args) {
List<Job> jobs = new ArrayList<>();
jobs.add(new Job(1, 0, 6));
jobs.add(new Job(2, 2, 4));
jobs.add(new Job(3, 4, 2));
jobs.add(new Job(4, 6, 8));
// 按照到达时间排序
Collections.sort(jobs, Comparator.comparingInt(job -> job.arrivalTime));
int currentTime = 0; // 当前时间
for (Job job : jobs) {
if (job.arrivalTime > currentTime) {
currentTime = job.arrivalTime; // 更新当前时间
}
System.out.println("执行作业 " + job.id + ",进程开始时间:" + currentTime);
currentTime += job.burstTime; // 更新当前时间
System.out.println("执行作业 " + job.id + ",进程结束时间:" + currentTime);
}
}
}
```
以上是一个简单的FCFS算法的Java实现示例。实现过程中,首先将待执行的作业按照到达时间排序,然后按照先到先服务的原则依次执行作业。
阅读全文