Linux CPU数、物理核、逻辑核的查看方法及线程进(3)

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

        num = sysconf(_SC_NPROCESSORS_CONF);  //获取核数 
        pthread_t thread[THREAD_MAX_NUM]; 
        printf("system has %i processor(s). \n", num); 
        int tid[THREAD_MAX_NUM]; 
        int i; 
        for(i=0;i<num;i++) 
        { 
                  tid[i] = i;  //每个线程必须有个tid[i] 
                  pthread_create(&thread[0],NULL,threadFun,(void*)&tid[i]); 
        } 
        for(i=0; i< num; i++) 
        { 
                  pthread_join(thread[i],NULL);//等待所有的线程结束,线程为死循环所以CTRL+C结束 
        } 
        return 0; 

编译命令:gcc bind.c -o bind -lpthread
执行:./bind
输出结果:略

特别注意:

#define __USE_GNU不要写成#define _USE_GNU
#include<pthread.h>必须写在#define __USE_GNU之后,否则编译会报错

查看你的线程情况可以在执行时在另一个窗口使用top -H来查看线程的情况,查看各个核上的情况请使用top命令然后按数字“1”来查看。

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12718.html