发布网友 发布时间:2022-04-23 05:27
共2个回答
热心网友 时间:2022-06-05 00:07
展开1全部你用了pthread库,在链接的时候要加上
gcc
-lpthread
1.c
-o
1
即可
子进程(对应pid==0语句)调用pthread接口创建线程,在县城内将value赋值5,然后打印
child:
value=%d\n
此时value
=
5
父进程
(对应
pid
>
0
语句),等待子进程执行完成后(wait语句),打印parent:
value=%d\n
,此时value
=
0
对于你补充问题的回答:
线程是在子进程里创建的,它只改变了子进程的value
(子进程和父进程的value处在不同的地址空间,互相没有关系,而子进程和它所创建的线程是在同一地址空间,所以线程可以改变子进程的value),
父进程没有创建线程,因此它的值不会被改变。
热心网友 时间:2022-06-05 01:25
linux
系统创建进程都是用
fork()
系统调用创建子进程
由
fork()
系统调用创建的新进程被称为子进程。该函数被调用一次,但返回两次。如果
fork()进程调用成功,两次返回的区别是子进程的返回值是0,而父进程的返回值则是新子进程的进程号