#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sched.h>
#include <pthread.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
typedef void* (*threadfunc)(void *data);
int thread_stop = 0;
void *pt_fn(void * data)
{
while(!thread_stop)
{
printf("pt_fn.\n");
}
return ((void *)0)
}
int pcreate_rr_thread(pthread_t *tid, int priority, threadfunc func, void *data)
{
pthread_attr_t attr;
struct sched_param params;
int ret = 0;
pthread_attr_init(&attr);
//不继承父线程的调度策略
if((ret = pthread_attr_setinheritsched(&attr,PTHREAD_EXPLICIT_SCHED)))
{
printf("pthread_attr_setinheritsched failed.\n");
}
//设置子线程为RR调度策略
if((ret = pthread_attr_setschedpolicy(&attr,SCHED_RR)))
{
pr
pthread创建RR线程
最新推荐文章于 2022-11-07 11:54:18 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)