需要注意的是,在线程中使用pthread_detach之后就不能用pthread_join了,否则会出现Invalid argument错误
#include <stdio.h>
#include <pthread.h>
#include <string.h>
void *th_run(void *arg)
{
int n = 3;
while(n--)
{
printf("thread run\n");
sleep(1);
}
}
int main()
{
pthread_t pth;
pthread_create(&pth, NULL, th_run, NULL);
pthread_detach(pth);
int status;
int err = pthread_join(pth, (void *)&status);
if (err)
{
printf("error info[%s]\n", strerror(err));
}
else
{
printf("thread exit %d\n", status);
}
return 0;
}