Python 进程 Process 模块 - Python零基础入门教程
程序员文章站
2022-03-10 11:38:13
目录 一.Python 进程 Process 简介 二.Python 进程 Process 模块 三.Python 进程 Process 函数介绍 四.Python 进程 Process 使用 五.Python 进程 Process 小窍门 六.猜你喜欢 零基础 Python 学习路线推荐 : Py ......
目录
- 一.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 的函数和**** 类似,具体如下:
- 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 process def 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) # 获取进程pid print("进程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 的区别
六.猜你喜欢
- python 条件推导式
- python 列表推导式
- python 字典推导式
- python 函数声明和调用
- python 不定长参数 *argc/**kargcs
- python 匿名函数 lambda
- python return 逻辑判断表达式
- python 字符串/列表/元组/字典之间的相互转换
- python 局部变量和全局变量
- python type 函数和 isinstance 函数区别
- python is 和 == 区别
- python 可变数据类型和不可变数据类型
- python 浅拷贝和深拷贝
- python 文件读写操作
- python 异常处理
- python 模块 import
- python __name__ == ‘__main__’详细解释
- python 线程创建和传参
- python 线程互斥锁 lock
- python 线程时间 event
- python 线程条件变量 condition
- python 线程定时器 timer
- python 线程信号量 semaphore
- python 线程障碍对象 barrier
- python 线程队列 queue – fifo
- python 线程队列 lifoqueue – lifo
- python 线程优先队列 priorityqueue
- python 线程池 threadpoolexecutor(一)
- python 线程池 threadpoolexecutor(二)
- python 进程 process 模块
- python 进程 process 与线程 threading 区别
- python 进程间通信 queue / pipe
未经允许不得转载: » python 进程 process 模块
本文由博客 - 猿说编程 发布!
推荐阅读
-
【小甲鱼】零基础入门学习Python(七)模块
-
Python基础之进程(Process)
-
适合零基础人群学习的Python入门教程
-
Python format 函数- Python零基础入门教程
-
Python isinstance函数 - Python零基础入门教程
-
Python type 函数- Python零基础入门教程
-
零基础也能看懂的python内置csv模块教程
-
Python 进程互斥锁 Lock - Python零基础入门教程
-
Python 进程间通信 Queue / Pipe - Python零基础入门教程
-
Python 线程池 ThreadPoolExecutor(一) - Python零基础入门教程