本片是送给初学者,本人死死研究了一晚上。看来错误就要找病根,网上有时候不是很对应
也许是Xcode设置问题,不过在这里就先不说了
void thread(void)
{ int i; for(i=0;i<3;i++) printf("This is a pthread.\n"); }{
pthread_t id;
int i,ret; ret=pthread_create(&id,NULL,(void *) thread,NULL); if(ret!=0){ printf ("Create pthread error!\n"); exit (1);}
大部分都是上面程序
但是在XcodeC++混合编程时就会显示没有匹配的pthread_create函数,
int pthread_create(pthread_t * __restrict,
const pthread_attr_t * __restrict,
void *(*)(void *),
void * __restrict);
这是原函数,主要是第三个 void *(*)(void *)
我的编写代码:
类头文件:
class textThread
{
private:
public:
textThread();
void init();
static void * thread(void*);
};
类cpp文件:
void * textThread::thread(void *para)
{
int i;
for(i=0;i<3;i++)
printf("This is a pthread.\n");
returnNULL;
}
voidtextThread::init()
{
pthread_tid;
int ret;
/*int pthread_create(pthread_t * __restrict,
const pthread_attr_t * __restrict,
void *(*)(void *),
void * __restrict);*/
ret = pthread_create(&id,NULL, thread, NULL);
if(ret!=0){
printf ("Create pthread error!\n");
exit (1);
}
}
这样子就OK了,对于Xcode多线程菜鸟希望有用,并且希望牛人指正。