void myThread(void *arg) {
printf("Thread ran!\n");
pthread_exit( NULL );
}
int main() {
int ret;
pthread_t mythread;
ret=pthread_create(&mythread,NULL,myThread,NULL);
if (ret != 0) {
printf( "Can’t create pthread (%s)\n", strerror(errno ) );
exit(-1);
}
return 0;
}
答案 0 :(得分:8)
由于main
会立即返回,在线程有机会执行之前 - 尝试在sleep(1000);
之前添加return 0;
,您可能会发现它有效。
如果您希望main
等到线程完成,请尝试pthread_join(但是您可能根本没有线程)。
pthread_join(mythread, 0);
return 0;
答案 1 :(得分:4)
你必须在主线程中等待,在致电pthread_join()
后使用pthread_create()
。