多进程编程总述

1、进程创建:fork函数族

    fork()和vfork()函数的区别:

    (1) fork ( ):子进程拷贝父进程的数据段,代码段
          vfork( ):子进程与父进程共享数据段

    (2) fork( )父子进程的执行次序不确定
          vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享的,在它调用exec或exit 之后父进程才可能被调度运行。也就是说父进程在子进程调用exec或exit函数族之前一直保持阻塞。

    (3) vfork( )保证子进程先运行,在它调用exec 或exit 之后父进程才可能被调度运行。如果在 调用这两个函数之前子进程依赖于父进程的进一步动作,则会导致死锁。

    注:fork( )返回0为子进程;返回>0为父进程,返回值为子进程ID;返回<0,进程创建错误。

2、进程中启动另一个程序的运行:exec函数族

    一个进程一旦调用exec类函数,它本身就"死亡"了,系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号,也就是说,对系统而言,还是同一个进程,不过已经是另一个程序了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值