父进程为什么要创建子进程
2013-01-08 09:03
267 查看
在程序设计时,某一个具体的功能模块可以通过函数或是线程等不同的形式来实现。对于同一进程而言,这些函数、线程都是存在于同一个地址空间下的,而且在执行时,大多只对与其相关的一些数据进行处理。如果算法存在某种错误,将有可能破坏与其同处一个地址空间的其他一些重要内容,这将造成比较严重的后果。为保护地址空间中的内容可以考虑将那些需要对地址空间中的数据进行访问的操作部分放到另外一个进程的地址空间中运行,并且只允许其访问原进程地址空间中的相关数据。具体的,可在进程中通过CreateProcess()函数去创建一个子进程,子进程在全部处理过程中只对父进程地址空间中的相关数据进行访问,从而可以保护父进程地址空间中与当前子进程执行任务无关的全部数据。对于这种情况,子进程所体现出来的作用同函数和线程比较相似,可以看成是父进程在运行期间的一个过程为此,需要由父进程来掌握子进程的启动、执行和退出。创建子进程才能多道程序并发执行,linux初始化的时候会创建swap进程、然后是init进程和一个init进程的兄弟进程,所有的进程(运行的程序)都是从父进程演化出去的,你可以看看proc里的东西,写个程序打印出各个进程的父进程~网上有源代码的,要的话我给你。
咱要先搞明白进程究竟是什么,进程是资源分配的单位,是运行的程序,既然是运行的程序,一个进程自然只能代表一个程序,多道程序设计自然而然就有了多进程的概念。举个例子,多进程(线程)下载,我们可以给一个需要下载的资源分片,多个进程从不同的片分时下载,这样就提高了下载速度,因为对一个程序分配的更多的资源,你试试开迅雷的时候打开个网页,保证你觉得奇卡无比,因为网络带宽(资源)被迅雷的多个进程占用了。其实在本地的多进程程序并不多见,比如word算是个典型的多进程程序,有个进程接受你的键盘输入,有拼写检查进程,有显示进程等等。大多数都用到网络上了,比如服务器。一台服务器要在“同一时间”处理来自很多客户端的请求,这就必须使用多进程
咱要先搞明白进程究竟是什么,进程是资源分配的单位,是运行的程序,既然是运行的程序,一个进程自然只能代表一个程序,多道程序设计自然而然就有了多进程的概念。举个例子,多进程(线程)下载,我们可以给一个需要下载的资源分片,多个进程从不同的片分时下载,这样就提高了下载速度,因为对一个程序分配的更多的资源,你试试开迅雷的时候打开个网页,保证你觉得奇卡无比,因为网络带宽(资源)被迅雷的多个进程占用了。其实在本地的多进程程序并不多见,比如word算是个典型的多进程程序,有个进程接受你的键盘输入,有拼写检查进程,有显示进程等等。大多数都用到网络上了,比如服务器。一台服务器要在“同一时间”处理来自很多客户端的请求,这就必须使用多进程
相关文章推荐
- 为什么fork创建子进程后,父进程中运行过的代码在子进程中不再运行了
- 多进程服务器中,epoll的创建应该在创建子进程之后
- Linux下利用fork()创建子进程并使父进程等待子进程结束
- 多进程服务器中,epoll的创建应该在创建子进程之后
- 【进程线程与同步】5.1 创建和销毁子进程
- 实验 9-1 1. 实现以下功能 a) 调用 pipe()创建无名管道 b) 调用 fork 创建一个子进程 c) 在子进程中向管道内写入 128k 数据,打印出进程号及成功写入的字节数 d) 在父
- 子进程system_service创建后while一直判断子进程状态是否died,如果会则zygote也kill自己
- 【进程线程与同步】5.1 创建和销毁子进程
- Linux进程全解4——fork创建子进程
- Linux进程创建,子进程对父进程资源“写时拷贝”
- Linux 下用vfork()创建进程,子进程用return和exit返回的区别
- 创建子进程,并打印父进程和子进程的ID
- [Linux进程]使用vfork创建子进程
- Linux间的进程通信;以及子进程的创建
- 创建进程时,为什么fork会返回两次?
- [Linux进程]使用vfork创建子进程并且执行命令
- Linux间的进程通信;以及子进程的创建
- python创建子进程 proc.pid(),打印出子进程PID,打印出的进程号,和top显示的相差1
- 编写一个程序,使用fork函数来创建一个子进程,并且说明父进程和子进程的随机返回问题
- C语言父子进程--子进程的创建与带参返回值捕捉