进程由UNIX系统首先实现,在此之前,多道程序只能通过批处理的方式来执行 。进程概念提出之后,操作系统从此就焕然一新 。
linux中进程的概念和UNIX中完全一致 。
进程是什么?我们可以简单地用一句话定义:
进程是程序的执行 。
对于这个定义,懂的人认为定义得非常准确,不懂的人却更加糊涂了 。
理解进程,最好的方式,就是编写程序,创建一个进程 。
Linux/Unix下创建进程的方法是调用fork()函数 。
文章插图
单词fork的含义是分叉,父进程调用fork(),当fork()函数返回时,程序流程产生了分叉,子进程就生成了 。
【Linux下如何使用C语言创建进程】
fork调用的逻辑是这样的:
pid_t thePid;thePid = fork();if (thePid < 0){ //生成进程失败 return;}if (thePid == 0){ //子进程逻辑}else{ //父进程逻辑}
实际上,我们编写代码时,只能根据fork()的返回值来判断我们现在执行的是父进程的逻辑,还是子进程的逻辑:
1、对于父进程,fork()返回子进程的ID;
2、对于子进程,fork()返回0 。
下面是我编写的一个程序:
文章插图
getpid的功能是获得当前进程的ID
这是程序某次运行的情况:
文章插图
可以发现:
(1)调用fork之前,进程的ID是13088;
(2)调用fork之后,父进程的ID仍然是13088,子进程的ID是13093;
(3)父进程和子进程在睡眠后再次运行,由操作系统调度,没有固定的次序 。
谢谢您的阅读!
推荐阅读
- 百度快照是什么,如何删除百度快照?删除网站还有其他什么办法。
- 淘宝如何在一个宝贝下添加多个分类 淘宝发布宝贝怎么设置多个价格呢
- 搜索引擎是如何对网站给予排名的
- win7系统如何设置开机启动项,优化开机速度?
- Google tcp拥塞控制 bbr算法
- Linux管理基础命令"tr"你用过吗?
- Python协程还不理解?请收下这份超详细的异步编程教程
- 看我怎么通过Python脚本给100台网络设备一键化下发相同的配置
- 淘宝竞品分析主要从哪几个方面 淘宝如何做竞品分析
- 超级推荐如何拉动首页流量 淘宝超级推荐流量在哪里看得到