目录

  • 一.Python 进程 Process 简介
  • 二.Python 进程 Process 模块
  • 三.Python 进程 Process 函数介绍
  • 四.Python 进程 Process 使用
  • 五.Python 进程 Process 小窍门
  • 六.猜你喜欢

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

一.Python 进程 Process 简介

进程 Process 是对各种资源管理的集合,包含对各种资源的调用、内存的管理、网络接口的调用;一个进程 Process 可以包含多个子进程,启动一个进程的时候会自动创建一个线程,进程里的第一个线程就是主线程(即Python __name__ == ‘__main__’);

二.Python 进程 Process 模块

对于线程操作可以用 threading 模块,那么对于进程的创建 Python 同样也提供了 Process 模块,创建进程时需要导入该模块,语法如下:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 进程 Process 模块.py
@Time:2021/05/06 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""# 导入进程模块
from multiprocessing import Process'''
参数介绍:group — 参数未使用,默认值为None;target — 表示调用对象,即子进程要执行的任务(函数名字);args — 子进程对应函数的参数,并且类型是元组tuple;kwargs — 子进程对应函数的参数,并且类型是字典dict,如kwargs = {‘name’:Jack, ‘age’:18};name — 子进程名称;返回值:返回进程实例对象;
'''# 创建进程
p = Process(group=None, target=None, name=None, args=(), kwargs={})

三.Python 进程 Process 函数介绍

其实进程 Process 的函数和**线程 threading** 类似,具体如下:

  • 1.start — 启动进程;
  • 2.terminate — 强制终止进程,不会进行任何清理操作。如果该进程终止前,创建了子进程,那么该子进程在其强制结束后变为僵尸进程;如果该进程还保存了一个锁那么也将不会被释放,进而导致死锁,使用时,要注意;
  • 3.is_alive — 判断某进程是否存活,存活返回 True ,否则 False ;
  • 4.join([timeout]) — 主线程等待子线程终止。timeout 为可选择超时时间;需要强调的是,p.join 只能 join 住 start 开启的进程,而不能 join 住 run 开启的进程 ;
  • 5.daemon — 默认值为 False ,如果设置为 True,代表该进程为后台守护进程;当该进程的父进程终止时,该进程也随之终止;并且设置为 True 后,该进程不能创建子进程,设置该属性必须在 start 之前;
  • 6.name — 进程名称;
  • 7.pid — 进程 ID 标识,pid,值得注意的是:如果在 start 函数之前获取 pid 默认为 None ,因为进程还未创建,获取不到 pid
  • 8.exitcode — 进程运行时为 None,如果为 -N ,表示被信号 N 结束了;
  • 9.authkey — 进程身份验证,默认是由 os.urandom 随机生成 32 字符的字符串。这个键的用途是设计涉及网络连接的底层进程间的通信提供安全性,这类连接只有在具有相同身份验证才能成功;

四.Python 进程 Process 使用

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 进程 Process 模块.py
@Time:2021/05/06 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""from multiprocessing import Processdef people_info(*args,**kwargs):print(args,kwargs)def main():# 信息列表list_info = [{"name":"zhangsan","height":"175cm"},{"name": "lisi", "height": "155cm"},{"name": "wangwu", "height": "195cm"},{"name": "liqi", "height": "166cm"},{"name": "wangba", "height": "125cm"},]# 创建进程for i in range(5):p = Process(target=people_info,args=(i,),kwargs=list_info[i])# 设置为守护进程,必须设置在start函数之前,否则会产生异常# 默认为False,即主进程会等待子进程结束之后才结束,# 如果设置为True,主进程结束之后所有的子进程自动结束,不管子进程是否已经执行完所有任务# p.daemon = True# 启动进程p.start()# 获取进程pid,如果在start函数之前获取pid,默认为None,因为进程还没启动print("进程process pid = ",p.pid)# 获取进程名字print("进程process name = ",p.name)# 获取进程pidprint("进程process exitcode = ",p.exitcode)if __name__ == "__main__":main()'''
输出结果:进程process pid =  2600
进程process name =  Process-1
进程process exitcode =  None
进程process pid =  4372
进程process name =  Process-2
进程process exitcode =  None
进程process pid =  14124
进程process name =  Process-3
进程process exitcode =  None
进程process pid =  10920
进程process name =  Process-4
进程process exitcode =  None
进程process pid =  4892
进程process name =  Process-5
进程process exitcode =  None
(0,) {'name': 'zhangsan', 'height': '175cm'}
(1,) {'name': 'lisi', 'height': '155cm'}
(2,) {'name': 'wangwu', 'height': '195cm'}
(3,) {'name': 'liqi', 'height': '166cm'}
(4,) {'name': 'wangba', 'height': '125cm'}
'''

五.Python 进程 Process 小窍门

Python 的 os 模块封装了常见的系统调用,其中就包括:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 进程 Process 模块.py
@Time:2021/05/06 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""os.fork() 创建子进程
os.getpid() 获取自身 ID
os.getppid() 获取父进程 ID

关于进程 Process 创建就介绍到这里,不知道大家发现没有,进程 Process 的创建和线程 threading 的创建非常相似,那么 Python 进程和线程到底又有什么区别呢?关于 Python 进程和线程的区别请参考:Python 进程 Process 与线程 threading 的区别

六.猜你喜欢

  1. Python 条件推导式
  2. Python 列表推导式
  3. Python 字典推导式
  4. Python 函数声明和调用
  5. Python 不定长参数 *argc/**kargcs
  6. Python 匿名函数 lambda
  7. Python return 逻辑判断表达式
  8. Python 字符串/列表/元组/字典之间的相互转换
  9. Python 局部变量和全局变量
  10. Python type 函数和 isinstance 函数区别
  11. Python is 和 == 区别
  12. Python 可变数据类型和不可变数据类型
  13. Python 浅拷贝和深拷贝
  14. Python 文件读写操作
  15. Python 异常处理
  16. Python 模块 import
  17. Python __name__ == ‘__main__’详细解释
  18. Python 线程创建和传参
  19. Python 线程互斥锁 Lock
  20. Python 线程时间 Event
  21. Python 线程条件变量 Condition
  22. Python 线程定时器 Timer
  23. Python 线程信号量 Semaphore
  24. Python 线程障碍对象 Barrier
  25. Python 线程队列 Queue – FIFO
  26. Python 线程队列 LifoQueue – LIFO
  27. Python 线程优先队列 PriorityQueue
  28. Python 线程池 ThreadPoolExecutor(一)
  29. Python 线程池 ThreadPoolExecutor(二)
  30. Python 进程 Process 模块
  31. Python 进程 Process 与线程 threading 区别
  32. Python 进程间通信 Queue / Pipe

未经允许不得转载:猿说编程 » Python 进程 Process 模块

Python 进程 Process 模块 - Python零基础入门教程相关推荐

  1. python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)

    一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...

  2. Python 进程 Process 与线程 threading 区别 - Python零基础入门教程

    目录 一.Python 线程 threading 创建 二.Python 进程 Process 创建 三.Python 进程 Process 和线程 threading 区别 四.Python 进程 ...

  3. Python 进程池 multiprocessing.Pool - Python零基础入门教程

    目录 一.Python 进程池 multiprocessing.Pool 介绍 二.Python 进程池 multiprocessing.Pool 使用 三.猜你喜欢 零基础 Python 学习路线推 ...

  4. Python 进程互斥锁 Lock - Python零基础入门教程

    目录 一.Python 线程互斥锁和进程互斥锁 1.创建线程互斥锁 2.创建进程互斥锁 二.进程互斥锁 Lock 函数介绍 三.进程互斥锁 Lock 使用 案例一:使用进程,但不使用互斥锁 案例二:进 ...

  5. Python globals 函数 - Python零基础入门教程

    目录 一.Python globals 函数语法 二.Python globals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pytho ...

  6. Python locals 函数 - Python零基础入门教程

    目录 一.locals 函数语法 二.locals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.locals ...

  7. Python reduce 函数 - Python零基础入门教程

    目录 一.Python reduce 函数简介 1.reduce 函数语法 2.reduce 函数原理 二.Python reduce 函数使用 1.reduce 函数普通使用 2.reduce 函数 ...

  8. Python chr 函数 - Python零基础入门教程

    目录 一.Python chr 函数简介 二.Python chr 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一 ...

  9. Python GIL 锁 - Python零基础入门教程

    目录 一.并行和并发 二.GIL 锁 案例一:单核多线程 案例二:单核多线程 案例三:双核多线程 三.如何解决 GIL 锁问题 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习 ...

最新文章

  1. 小程序大转盘红包雨营销组件
  2. 企业ERP制度的“执行力”
  3. 9大项目实战!tensorflow2.0框架实战(免费资料+干货合集)
  4. 公众号第三方平台开发 获取 component_verify_ticket
  5. selenium webdriver之eclipse java开发环境搭建
  6. linux 卸载模块命令,Linux中module模块的编译、加载、卸载
  7. Tensorflow载入模型详解,方法一(基础版):针对测试模型性能 和 使用模型。
  8. ACM PKU1703 Find them, Catch them
  9. ospf实验及原理(ensp)
  10. 最便宜的855旗舰了,可惜是它
  11. Xna游戏编辑器开发(WinForm内嵌Xna)
  12. Chilkat -- python又一个强大的库
  13. CocoaLumberjack+XcodeColor(输出带有颜色的日志)在安装过程中遇到的问题
  14. 基于小波变换的数字水印技术
  15. 如何基于TwinCAT3实现伺服电机控制(一)
  16. 淘宝APP用户行为数据分析
  17. 【Unity】Sprite Atlas功能讲解
  18. LeetCode 1128.等价多米诺骨牌
  19. Breakpoint原理解释
  20. 2018牛客暑假多校A题GPA 01分数规划

热门文章

  1. MaxCompute中如何使用OSS外部表读取JSON数据?
  2. 重磅!阿里云发布最新服务等级协议SLA ,多实例可用性升为99.995%
  3. 那些年,我们见过的Java服务端乱象
  4. 神经进化是深度学习的未来
  5. 阿里云ECS开放批量创建实例接口,实现弹性资源的创建
  6. 调研邀请:我们到底需要什么样的低代码平台?
  7. 对话Satya Nadella:大规模AI模型、人机界面或将迎来大突破
  8. 通信行业力推零信任标准,蔷薇灵动微隔离首批获证
  9. 深夜,我偷听到程序员要对session下手......
  10. 快报:Java跌惨!Python背后或有推手?网友:心态已崩!