Созданный (отсоединенный) поток никогда не выполнялся

Я написал этот код:

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

Состояние отсоединения должно сделать поток недоступным для присоединения, поэтому он должен работать даже после завершения основного процесса. Но он не печатает числа, все, что я вижу заключается в том, что поток завершился, ничего не напечатав в stderr.
Почему не выполняется отдельный поток?

0
задан Ramy Al Zuhouri 28 May 2012 в 16:51
поделиться