gpt4 book ai didi

在子进程中创建线程

转载 作者:行者123 更新时间:2023-11-30 14:25:22 24 4
gpt4 key购买 nike

#include<pthread.h>
#include<stdio.h>
int value=0;
void *runner(void *param);
int main(int argc,char *argv[])
{
int pid;
pthread_t tid;
pthread_attr_t attr;
pid=fork();
if(pid==0){
pthread_attr_init(&attr);
pthread_create(&tid,&attr,runner,NULL);
pthread_join(tid,NULL);
printf("CHILD VALUE=%d",value);
}
else if(pid>0){
wait(NULL);
printf("PARENT VALUE=%d",value);
}
}


void *runner(void *param){
value=5;
pthread_exit(0);
}

child 和 parent 的值(value)是什么?子进程和它创建的线程会共享数据吗?所以输出将是 5 和 0?

最佳答案

will the child and the thread created by it share the data?

没有。子进程可以被认为是获取父进程内存的副本。因此,父级无法看到子级所做的任何更改。

so output will be 5 and 0?

是:子级打印 5,父级打印 0(不一定按此顺序)。

关于在子进程中创建线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10414249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com