码迷,mamicode.com
首页 > 其他好文 > 详细

多进程编程总述

时间:2014-07-10 20:04:04      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:多进程

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


多进程编程总述,布布扣,bubuko.com

多进程编程总述

标签:多进程

原文地址:http://blog.csdn.net/techhome803/article/details/37592505

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!