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小时内删除。