23,124
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<unistd.h>
#include<pthread.h>
void* task1(void*);
void* task2(void*);
int main()
{
pthread_t pid1, pid2;
pthread_attr_t attr;
int ret;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
pthread_create(&pid1, &attr, task1, NULL);
ret=pthread_join(pid1, NULL);
printf("ret=%d\n", ret);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
pthread_create(&pid2, &attr, task2, NULL);
ret=pthread_join(pid2, NULL);
printf("ret=%d\n", ret);
return 1;
}
void* task1(void*)
{
printf("task1\n");
pthread_exit(NULL);
}
void* task2(void*)
{
pthread_detach(pthread_self());
printf("task2\n");
pthread_exit(NULL);
}