Re: [理工] [OS] 父子process的共享变量

楼主: chadcoco1222 (ha)   2015-06-15 12:41:32
※ 引述《gn00399745 (Michael)》之铭言:
: int value = 0;
: void *runner(void *param);
: int main(in argc, char *argv[])
: {
: int pid;
: phread_t tid;
: pthread_arrt_t attr;
: pid = fork()
: if(pid == 0){//child
: pthread_attr_init(&attr);
: pthread_create(&tid,&attr,runner,NULL);
: pthread_join(tid,NULL);
: printf("%d\n",value); //line C
: }else if(pid>0){ //parent
: wait(NULL);
: printf("%d\n",value);//line P
: }
: }
: void *runner(void *param)
: {
: value = 5;
: pthread_exit(0);
: }
:
作者: pathy (pathy)   2015-06-15 14:54:00
你说的是copy on write
楼主: chadcoco1222 (ha)   2015-06-15 20:17:00
所以这样里解是错的吗????
作者: fightforlive (学历无用论是屁)   2015-06-16 08:03:00
child和parent基本不会共用变量,除非你用共用内存才会使用相同变量
楼主: chadcoco1222 (ha)   2015-06-16 10:38:00
所以是两个独立的process吗http://lionrex.pixnet.net/blog/post/56646996-%5Bos%5D-fork()-%E5%92%8C-vfork()-%5Bcopy-on-write%5D
作者: pathy (pathy)   2015-06-16 11:58:00
c大说的是基本thread,f大说的是copy on write更正, c大内文说的是copy, f大推文说的是基本thread

Links booklink

Contact Us: admin [ a t ] ucptt.com