为什么我的pthread功能打印出我的预期?

min*_*ner 2 c printf pthreads

我是新的线程编程和在C中学习线程编程的阶段.

这个简单的代码编译并运行,但我认为它会打印出"hello world"和8号,但它没有.有人知道这个的原因吗?

void *threadfunc(void *input_data){  
    printf("Hello World");  
    long tid;  
    tid=(long)input_data;  
    printf("thread ID: &d", tid);  
    return NULL;  
    sleep(1);  
}  
int main(){  

    long t = 8;  
    int t1;  
    pthread_t thread_obj;  
    t1= pthread_create(&thread_obj, NULL,threadfunc, (void*)t);  
}*  
Run Code Online (Sandbox Code Playgroud)

提前致谢!:)

cni*_*tar 8

首先,你可能想pthread_joinpthread_create某个地方打电话.如果你没有并且主线程退出,那么新线程将有机会运行(相当不错).

换句话说,一旦一个线程exits,它们都会这样做 - 该进程不会"等待"其他线程.


您可能还想为printf通话添加换行符.