先来先服务调度算法代码c++
时间: 2024-11-21 22:31:16 浏览: 21
"先进先出"(First-In-First-Out,FIFO)调度算法是一种常见的任务调度策略,它的基本思想是按照任务到达的顺序处理它们。在C++中,你可以使用标准库中的`queue`容器来模拟这个过程。这里有一个简单的示例:
```cpp
#include <iostream>
#include <queue>
class Task {
public:
int id;
Task(int _id) : id(_id) {}
void execute() { std::cout << "Task " << id << " is being executed.\n"; }
};
void schedule(Task* tasks, int num_tasks) {
std::priority_queue<Task*, std::vector<Task*>, std::greater<Task*>> fifo_queue; // 使用优先队列,默认排序是递减的
for (int i = 0; i < num_tasks; ++i) {
fifo_queue.push(tasks[i]);
}
while (!fifo_queue.empty()) {
Task* current_task = fifo_queue.top();
fifo_queue.pop(); // 取出队首的任务
current_task->execute(); // 执行任务
}
}
int main() {
Task tasks[] = {new Task(1), new Task(2), new Task(3)};
int num_tasks = sizeof(tasks) / sizeof(tasks[0]);
schedule(tasks, num_tasks);
// 删除动态分配的内存
for (auto task : tasks) {
delete task;
}
return 0;
}
```
在这个例子中,我们创建了一个`Task`类,并将其实例放入优先级队列`fifo_queue`。然后,我们在`schedule`函数中按顺序取出并执行队列中的每个任务。
阅读全文
相关推荐
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)