您的位置:首页 > 运维架构 > Linux

linux posix 通过pthread_join获取线程pthread_exit返回的数据

2015-12-10 11:20 459 查看
#include <stdio.h>
#include <pthread.h>

typedef struct _foo
{
int a,b,c;
}foo;

void printfoo(foo* fp)
{
if(fp)
printf("a:%d\nb:%d\nc:%d\n",fp->a,fp->b,fp->c);
else
printf("ptr is Null\n");
}

void* proc1(void* arg)
{
foo* p = (foo*)malloc(sizeof(foo));
p->a = 4;
p->b = 5;
p->c = 6;
pthread_exit((void*)p);
}

void* proc2(void* arg)
{
foo* p = (foo*)malloc(sizeof(foo));
p->a = 7;
p->b = 8;
p->c = 9;
pthread_exit(0);
}

int main()
{
foo f={1,2,3};
foo* pf=&f;
pthread_t pid1,pid2;
pthread_create(&pid1,NULL,proc1,NULL);
pthread_create(&pid2,NULL,proc2,NULL);
printfoo(pf);
pthread_join(pid1,(void*)&pf);
printfoo(pf);
pthread_join(pid2,(void*)&pf);
printfoo(pf);

return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: