我是新的线程编程和在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)
提前致谢!:)
首先,你可能想pthread_join在pthread_create某个地方打电话.如果你没有并且主线程退出,那么新线程将有机会运行(相当不错).
换句话说,一旦一个线程exits,它们都会这样做 - 该进程不会"等待"其他线程.
您可能还想为printf通话添加换行符.