Java 轮询代码
时间: 2023-07-03 11:22:38 浏览: 123
一个轮询的java案例
5星 · 资源好评率100%
以下是一个使用 Java 实现的简单的轮询代码示例:
```java
import java.util.ArrayList;
import java.util.List;
public class RoundRobinScheduler {
private List<Runnable> tasks;
private int index;
public RoundRobinScheduler() {
tasks = new ArrayList<>();
index = 0;
}
public synchronized void addTask(Runnable task) {
tasks.add(task);
}
public synchronized void removeTask(Runnable task) {
tasks.remove(task);
}
public void start() {
while (true) {
if (tasks.size() == 0) {
continue;
}
Runnable task = tasks.get(index);
task.run();
index = (index + 1) % tasks.size();
}
}
}
```
这个类维护了一个任务列表和一个当前任务的索引,可以通过 `addTask` 方法向列表中添加任务,通过 `removeTask` 方法从列表中删除任务。`start` 方法会不断地循环执行任务列表中的任务,每次执行完一个任务之后将索引加一并对任务列表长度取模,使得任务可以循环执行。注意这个方法需要在一个新的线程中调用,否则会阻塞当前线程。
阅读全文