linux sched_fifo 例子代码
下面是一个简单的示例代码,展示如何使用Linux的`sched_fifo`调度程序来创建一个FIFO队列:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <sched.h>
#define NUM_THREADS 5
linux下的sleep函数void *thread_func(void *arg) {
int id = *((int *)arg);
printf("Thread %d is running\n", id);
sched_setscheduler(0, SCHED_FIFO, &id);
while (1) {
printf("Thread %d is waiting\n", id);
sleep(1);
}
return NULL;
}
int main() {
pthread_t threads[NUM_THREADS];
int thread_ids[NUM_THREADS];
for (int i = 0; i < NUM_THREADS; i++) {
thread_ids[i] = i;
pthread_create(&threads[i], NULL, thread_func, &thread_ids[i]);
}
for (int i = 0; i < NUM_THREADS; i++) {
pthread_join(threads[i], NULL);
}
return 0;
}
```
在这个例子中,我们创建了5个线程,每个线程都会运行一个`thread_func`函数。在`thread_func`函数中,我们首先打印出线程的ID,然后使用`sched_setscheduler`函数将线程设置为使用`SCHED_FIFO`调度程序。最后,线程会进入一个无限循环,等待1秒钟后打印出一条消息。在主函数中,我们创建了5个线程,并等待它们完成。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论