多进程编程总述

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

时间: 2024-10-13 04:48:19

多进程编程总述的相关文章

设计模式之总述篇

以下是对<Head First 设计模式>中提到的OO原则和设计模式的总结. OO原则和设计模式的联系:模式可以让我们建造出具有良好OO设计质量的系统.模式被认为是历经验证的OO设计经验. OO设计原则: 1.封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起: 2.多用组合,少用继承:良好的OO设计必须具备可复用.可扩充.可维护三个特性. 3.针对接口编程,而不是针对实现编程:"针对接口编程"真正的意思是"针对超类型(sup

新浪微博SDK开发(1):总述

花了几天时间,消耗了九牛六虎之力,新浪微博大部分API已经封装,但有部分API实在太难封装. 说起这封装,我必须严重地.从人品和技术层面鄙视一下新浪的程序员,实在太菜了.估计菜鸟都被大企业吸收了,菜到连面向对象都不懂. 同样的内容,返回的JSON对象居然会出现不同结构,更可恶的,像公共API中获取城市列表,国家区域代码列表的返回结果,实在让人不得不发笑.那些JSON用JS读起来都困难,更何况要进行封装呢.根本没法封装,因此在论坛上抱怨的人不少,可是新浪官方呢,置之不管,就当没看见一样,看来,大企

Linux高性能服务器编程——多进程编程

多进程编程 多进程编程包括如下内容: 复制进程影映像的fork系统调用和替换进程映像的exec系列系统调用. 僵尸进程以及如何避免僵尸进程 进程间通信(Inter-Process Communication,IPC)最简单的方式:管道 3种进程间通信方式:信号量,消息队列和共享内存 fork系统调用 #include<unistd.h> pid_tfork(void); 该函数的每次都用都返回两次,在父进程中返回的是子进程的PID,在子进程中返回的是0.该返回值是后续代码判断当前进程是父进程还

很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序

很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用make更新函数库文件 后序 近期在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是google到了以下这篇文章.通俗易懂.然后把它贴出来,方便学习. 后记,看完发现这篇文章和<Linux环境下的C编程指南>

Web应用程序系统的多用户权限控制设计及实现-总述【1】

中大型的Web系统开发均需要权限的配置,基于多角色,多用户的操作权限管理是一个系统开发的基础.搭建好一套权限,用户,角色,页面一体的开发架构,可以用于后期业务的开发,同时也可用于不同业务的系统开发. 本文以实际项目开发中权限管理,用户管理模块为背景,通过数据库说明,开发代码说明,解析一个Web应用程序系统多权限,多用户配置管理的来龙去脉.特别说明: 1.实例所用数据库为sql sever 2012; 2.开发技术:ASP.NET MVC 4.0; 3.网站前台页面设计:EasyUI 1.4.3;

Linux makefile教程之总述二[转]

Makefile 总述——————— 一.Makefile里有什么? Makefile里主要包含了五个东西:显式规则.隐晦规则.变量定义.文件指示和注释. 1.显式规则.显式规则说明了,如何生成一个或多的的目标文件.这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令. 2.隐晦规则.由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的. 3.变量的定义.在Makefile中我们要定义一系列的变量,变

Linux下的多进程编程

1.进程 1.1进程的定义 <计算机操作系统>这门课对进程有这样的描述:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器.程序是指令.数据及其组织形式的描述,进程是程序的实体. 1.2进程的概念 进程的概念主要有两点: 第一,进程是一个实体.每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text

暴力枚举总述

暴力枚举总述 暴力枚举就是就是把所有可能的答案一一列举出来再加以判断.虽然方法有些笨,但问题规模不大或者没有好的解法时,这也是一个能用的方法. 问题一:输入1~9范围内的整数n,字典序输出1~n这n个数的全排列. 分析:每个数字都是n位数,可看做由前缀A和后缀B组成.初始时前缀A为空.函数伪代码见下: void f(A,B){ //要求的全排列为:已确定的字符串A加上B集合中数字的全排列 if(B为空)  {输出全排列,return;} for(i=1;i<=n;i++){ 若数字i在B中,f(

Solr4.8.0源码分析(5)之查询流程分析总述

Solr4.8.0源码分析(5)之查询流程分析总述 前面已经写到,solr查询是通过http发送命令,solr servlet接受并进行处理.所以solr的查询流程从SolrDispatchsFilter的dofilter开始.dofilter包含了对http的各个请求的操作.Solr的查询方式有很多,比如q,fq等,本章只关注select和q.页面下发的查询请求如下:http://localhost:8080/solr/test/select?q=code%3A%E8%BE%BD*+AND+l