3、d *arg)...{ printf("new thread created ..... "); }int main(int argc,char *argv[])...{ pthread_t tidp; int error; error=pthread_create(&tidp,NULL,create,NULL); if(error!=0) ......{ printf("pthread_create is not created ... ");
5、/ccOBJmuD.o: In function `main':thread_test.c:(.text+0x4f):对‘pthread_create’未定义的引用collect2: ld 返回 1现在我们能建立了一个线程了,我们可以从函数的原型看到,在创建线程的时候,是可以在对我们的函数进行传递参数,在pthread_create的第四个行参。我们看一下例题2~3. 例题2 功能:向新的线程传递整形值 程序名称:pthread_int.c #include #include
6、#include void *create(void *arg)...{ int *num; num=(int *)arg; printf("create parameter is %d ",*num); return (void *)0;}int main(int argc ,char *argv[])...{ pthread_t tidp; int error; int test=4; int *attr=&
7、test; error=pthread_create(&tidp,NULL,create,(void *)attr); if(error!=0) ...{ printf("pthread_create is created is not created ... "); return -1; } sleep(1); printf("pthread_create is created is created ... "); return
8、0;} 编译方法:gcc -lpthread thread_int.c -Wall 执行结果:create parameter is 4pthread_create is created is created ... 例题总结: 可以看出来,我们在main函数中传递的整行指针,传递到我们新建的线程函数中。 在上面的例子可以看出来我们向新的线程传入了另一个线程的in