进程的创建-fork(python版)
进程的创建-fork
1. 进程 VS 程序
编写完毕的代码,在没有运行的时候,称之为程序
正在运行着的代码,就成为进程
进程,除了包含代码以外,还有需要运行的环境等,所以和程序是有区别的
2. fork( )
Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程:
import os# 注意,fork函数,只在Unix/Linux/Mac上运行,windows不可以pid = os.fork()if pid == 0:print('哈哈1')else:print('哈哈2')
说明:
- 程序执行到os.fork()时,操作系统会创建一个新的进程(子进程),然后复制父进程的所有信息到子进程中
- 然后父进程和子进程都会从fork()函数中得到一个返回值,在子进程中这个值一定是0,而父进程中是子进程的 id号
在Unix/Linux操作系统中,提供了一个fork()系统函数,它非常特殊。
普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。
子进程永远返回0,而父进程返回子进程的ID。
这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的ID。
3. getpid()、getppid()
import osrpid = os.fork()
if rpid<0:print("fork调用失败。")
elif rpid == 0:print("我是子进程(%s),我的父进程是(%s)"%(os.getpid(),os.getppid()))x+=1
else:print("我是父进程(%s),我的子进程是(%s)"%(os.getpid(),rpid))print("父子进程都可以执行这里的代码")
运行结果:
我是父进程(19360),我的子进程是(19361)
父子进程都可以执行这里的代码
我是子进程(19361),我的父进程是(19360)
父子进程都可以执行这里的代码
进程的创建-fork(python版)相关推荐
- 进程的创建-fork
1.fork是linux/unix中专有的用来创建进程的系统调用. 2.在linux/unix系统中,提供fork()系统函数,非常特殊.普通的系统调用,调用一次就返回一次,而fork()调用一次,会 ...
- linux 进程(二) --- 进程的创建及相关api
一.进程的创建fork()函数 由fork创建的新进程被称为子进程(child process).该函数被调用一次,但返回两次.两次返回的区别是子进程的返回值是0,而父进程的返回值则是 新子进程的进程 ...
- 实验二:进程的创建与可执行程序的加载
学号:SA*****259 姓名:吕良 关键字:fork() exec() task_struct 进程地址空间 ELF文件格式 动态链接库 实验总结(应该说是回答实验问题,因为300-500字真的 ...
- 进程控制——创建,终止
目录 1.进程的创建 fork函数初识 fork函数返回值 写时拷贝 fork常规用法 2.进程终止 进程退出场景 进程常见退出方法 进程退出返回值的意义: 1.进程的创建 fork函数初识 在lin ...
- Python进程学习笔记-进程创建fork
1. 进程 VS 程序 编写完毕的代码,在没有运行的时候,称之为程序 正在运行着的代码,就成为进程 进程,除了包含代码以外,还有需要运行的环境等,所以和程序是有区别的. 2. fork( ) Pyth ...
- python 多进程 调用模块内函数_进程创建fork()和multiprocessing模块Process类
一.进程VS程序 一个人穿上军装去打仗就是战士,战士需要武器.战场等资源.一个人去种田就是农民,农民需要土地.锄头等资源. 编写完毕的代码,安静的呆在磁盘上,称之为程序.代码要运行就得加载到内存,正在 ...
- 进程的创建-Process子类(python 版)
进程的创建-Process子类 创建新的进程还能够使用类的方式,可以自定义一个类,继承Process类,每次实例化这个类的时候,就等同于实例化一个进程对象,请看下面的实例: from multipro ...
- 守护进程与后台进程(Python 创建守护进程)
文章目录 一.守护进程与后台进程 1. 守护进程 1.1 代码实现 为什么要fork两次 umask权限掩码 进程组 会话组 2. 后台进程 3. 守护进程与后台进程区别 4. 使用场景总结 二.参考 ...
- python创建新进程_Python并发编程(进程的创建)
动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的. 并发性:任何进程都可以同其他进程一起并发执行 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的 ...
最新文章
- AD5934阻抗变换模块实验电路板
- 推荐一个非常好用的Chrome扩展应用,用于美化Json字符串
- Java 条件编译 Conditional Compilation
- [CF1082G]Petya and Graph
- Taro+react开发(4)--tora官网2
- xss攻击中受影响的是服务器还是客户端,安全测试基础之 XSS
- Jquery Datatable 数据填充报错:requested unknown parameter ‘XXX‘ for row xx, column xx 解决方法
- 爱情二十四课,妥协50分
- Mac自带嗅探器和Wireshake抓包(三)
- 2022年全球与中国汽车MEMS加速度计市场现状及未来发展趋势
- DKMS:Dynamic Kernel Module Support
- 长方形面积公式的由来
- LTP上手之路(一)
- python 根据坐标点计算方位角函数
- 焱融科技与趋动科技携手解决一站式存算难
- Android UI性能优化 检测应用中的UI卡顿
- 你应该知道的10种软件工具
- 图片动漫化 - 面部 - AnimeGAN
- 几分钟计算机不操作就注销,win10系统长时间不操作就自动注销的方案
- Anki 2.1.24 版本更新要点