繁体   English   中英

为什么这段代码没有运行?

[英]Why does this code not run?

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;
}

因为main在线程有机会执行之前立即返回 - 尝试添加sleep(1000); return 0;之前return 0; 你可能会发现它有效。

如果你想让main等到线程完成,请尝试pthread_join (但是你可能根本就没有线程)。

pthread_join(mythread, 0);
return 0;

你必须在主线程等待,使用pthread_join()调用后pthread_create()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM