您的位置:首页 > 其它

pthread_create()函数使用方法

2018-03-07 16:41 495 查看
【问题】
        起步学习Linux下的多线程编程,按照网上的教程着手写第一个多线程编程文件,结果在编译时就遇到了第一个关于pthread_create()的错误。

           pthread_create()调用格式如下:           ret = pthread_create(&id,NULL,(void *) thread,NULL);            thread函数定义为:
        void thread(void)
      {
          int i;
            for(i=0;i<3;i++)
              printf("This is a pthread.\n");
        }
               编译错误信息:        error:invalid conversion from 'void*' to 'void* (*)(void*)'【解决思路】
               此链接查看pthread中对于pthread_create()函数的声明,可以看到对于pthread_create()函数的第三个参数定义形式为
        void *(*start_routine) (void *)                表示这是一个指向函数的指针,该函数的参数是void *,函数的返回值是void *。
【解决方案】
                thread函数定义修改为:
        void* thread(void *)
   {
   int i;
for(i=0;i<3;i++)
   printf("This is a pthread.\n");
}             pthread_create()调用格式修改如下:          ret = pthread_create(&id,NULL,&thread,NULL);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pthread pthread_create
相关文章推荐