我写了这段代码:
void* th (void* arg)
{
sleep(1);
for(int i=0; i<1000;i++)
{
fprintf(stderr,"%d\t",i);
}
pthread_exit(NULL);
}
int main(int argc, char** argv)
{
pthread_t thread;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);
pthread_create(&thread,&attr,th,NULL);
pthread_attr_destroy(&attr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
分离状态应该使线程不可连接,所以它应该在主进程终止后运行.但是它不打印数字,我看到的是线程终止而没有向stderr打印任何内容.
为什么不执行分离的线程?