Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t编译pthread调度API_C_Pthreads_Cpu_Scheduling - Fatal编程技术网

Can';t编译pthread调度API

Can';t编译pthread调度API,c,pthreads,cpu,scheduling,C,Pthreads,Cpu,Scheduling,在我的讲座中,我的教授给了我们一些我们需要在下一个作业中使用的代码,标题是Pthread调度API,下面是代码: #include <pthread.h> #include <stdio.h> #define NUM_THREADS 5 int main(int argc, char *argv[]) { int i; pthread_t tid[NUM_THREADS]; pthread_attr_t attr; /*get defa

在我的讲座中,我的教授给了我们一些我们需要在下一个作业中使用的代码,标题是Pthread调度API,下面是代码:

#include <pthread.h>
#include <stdio.h>
#define NUM_THREADS 5

int main(int argc, char *argv[])
{

    int i;
    pthread_t tid[NUM_THREADS];
    pthread_attr_t attr;
    /*get default attributes */
    pthread_attr_init(&attr);
    /* set scheduling algorithm to process or system */
    pthread_attr_setscope(&attr,PTHREAD_SCOPE_SYSTEM);
    /* set scheduling policy -FIFO, RT or OTHERS*/
    pthread_attr_setschedpolicy(&attr,SCHED_OTHER);
    /* create the threads */
    for (i=0;i<NUM_THREADS;i++)
        pthread_create(&tid[i],&attr,runner,NULL);
    /* join each thread*/
    for (i=0;i<NUM_THREADS;i++)
        pthread_join(tid[i],NULL);



}
void *runner(void *param){
    printf("I am a thread\n");
    pthread_exit(0);
}
#包括
#包括
#定义NUM_线程5
int main(int argc,char*argv[])
{
int i;
pthread_t tid[NUM_THREADS];
pthread_attr_t attr;
/*获取默认属性*/
pthread_attr_init(&attr);
/*将调度算法设置为进程或系统*/
pthread_attr_setscope(&attr,pthread_SCOPE_SYSTEM);
/*设置调度策略-FIFO、RT或其他*/
pthread_attr_setschedpolicy(&attr,SCHED_OTHER);
/*创建线程*/

对于(i=0;i将函数定义放在main之前:

void *runner(void *param);
否则,在编译时不会定义运行程序,因为您是在最后定义它的


将定义放在顶部,将实现放在底部将解决问题。(您也可以将函数实现放在主函数的顶部)

将函数定义放在主函数之前:

void *runner(void *param);
否则,在编译时不会定义运行程序,因为您是在最后定义它的


将定义放在顶部,将实现放在底部将解决问题。(您也可以将函数实现放在主代码的顶部)

尝试将运行程序功能代码移到主代码之前尝试将运行程序功能代码移到主代码之前