Java实现FIFO任务调度队列策略
策略说明
先进先出(FIFO)是一种简单的队列策略,其工作原理是最先进入队列的任务先被执行,后面加入的任务排在后面等待执行。Java中提供了多种数据结构可以实现FIFO队列策略,例如LinkedList、ArrayDeque等。
实现步骤
- 初始化一个队列对象:
Queue<Task> taskQueue = new LinkedList<>();
- 将任务添加到队列末尾:
Task task = new Task();
taskQueue.add(task);
- 执行队列头部的任务,直到队列为空:
while (!taskQueue.isEmpty()) {
Task task = taskQueue.poll();
task.execute();
}
示例说明
示例1:使用LinkedList实现FIFO队列
import java.util.LinkedList;
import java.util.Queue;
public class TaskScheduler {
public static void main(String[] args) {
Queue<Task> taskQueue = new LinkedList<>();
Task task1 = new Task("Task 1");
Task task2 = new Task("Task 2");
Task task3 = new Task("Task 3");
taskQueue.add(task1);
taskQueue.add(task2);
taskQueue.add(task3);
while (!taskQueue.isEmpty()) {
Task task = taskQueue.poll();
task.execute();
}
}
static class Task {
private String name;
public Task(String name) {
this.name = name;
}
public void execute() {
System.out.println("Executing task " + name);
}
}
}
输出:
Executing task Task 1
Executing task Task 2
Executing task Task 3
示例2:使用ArrayDeque实现FIFO队列
import java.util.ArrayDeque;
import java.util.Queue;
public class TaskScheduler {
public static void main(String[] args) {
Queue<Task> taskQueue = new ArrayDeque<>();
Task task1 = new Task("Task 1");
Task task2 = new Task("Task 2");
Task task3 = new Task("Task 3");
taskQueue.add(task1);
taskQueue.add(task2);
taskQueue.add(task3);
while (!taskQueue.isEmpty()) {
Task task = taskQueue.poll();
task.execute();
}
}
static class Task {
private String name;
public Task(String name) {
this.name = name;
}
public void execute() {
System.out.println("Executing task " + name);
}
}
}
输出:
Executing task Task 1
Executing task Task 2
Executing task Task 3
以上两个示例分别使用了LinkedList和ArrayDeque实现了FIFO任务调度队列策略,任务被顺序执行。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现FIFO任务调度队列策略 - Python技术站