多进程模块multiprocessing
multiprocessing模块就是跨平台版本的多进程模块,提供了⼀个Process类来代表一个进程对象
创建⼦进程时,只需要传⼊⼀个执⾏函数和函数的参数,创建⼀个
Process实例,⽤start()方法启动 ,join()⽅法可以等待子进程结束后再继续运行
Process语法结构如下:
Process([group [, target [, name [, args [, kwargs]]]]])
target:表示这个进程实例所调用对象;
args:表示调用对象的位置参数元组;
kwargs:表示调用对象的关键字参数字典;
name:为当前进程实例的别名;
group:⼤多数情况下⽤不到;
Process类常⽤⽅法:
is_alive():判断进程实例是否还在执⾏;
join([timeout]):是否等待进程实例执行结束,或等待多少秒;
start():启动进程实例(创建子进程);
run():如果没有给定target参数,对这个对象调⽤start()方法时,就讲执行对象中的run()⽅法;
terminate():不管任务是否完成,立即终止;
Process类常⽤属性:
name:当前进程实例别名,默认为Process-N,N为从1开始递增的整数;
pid:当前进程实例的PID值;
from multiprocessing import Process(P必须大写
import os
import time
defsub_process_fun(num, a):
"""子进程执行的代码"""
print("子进程:pid=%d" % os.getpid())
print("子进程:num=%d" % num)
print("子进程:a=%d" % a)
for i in range(10):
print("子进程:hello")
time.sleep(0.1)
def main():
print("父进程:pid=%d" % os.getpid())
p = Process(target=sub_process_fun,args=(100,), kwargs={"a": 200})
# 创建一个子进程对象
p.start() # 真正的创建出子进程,子进程可以开始执行代码
print("父进程:hi")
print("父进程:子进程的名字 %s" % p.name)
print("父进程:子进程的pid %d" % p.pid)
print("父进程:子进程的状态 %s" % p.is_alive())
time.sleep(0.1)
p.terminate() # 终止子进程的执行 存在延迟
print("父进程:已经终止了子进程")
print("父进程:子进程的状态 %s" % p.is_alive())
p.join() # 回收子进程资源 阻塞
print("父进程:已经回收了子进程")
print("父进程:子进程的状态 %s" % p.is_alive())
print("父进程:结束")
if __name__ =='__main__':
main()
多进程模块multiprocessing相关推荐
- 11.python并发入门(part9 多进程模块multiprocessing基本用法)
一.回顾多继承的概念. 由于GIL(全局解释器锁)的存在,在python中无法实现真正的多线程(一个进程里的多个线程无法在cpu上并行执行),如果想充分的利用cpu的资源,在python中需要使用进程 ...
- Python之进程+线程+协程(multiprocessing多进程模块)
前几篇的多线程模块的各种规则和用法,本篇则是关于多进程模块的内容 1.multiprocessing的介绍 在Python中,由于有GIL解释器锁的存在,多线程就根本不是本质意义上的多线程,而是一个主 ...
- Python multiprocess 多进程模块
转发:http://www.langzi.fun/Python multiprocess 多进程模块.html 需要注意的是,如果使用多线程,用法一定要加上if __name__=='__main__ ...
- 【python第三方库】python多进程编程multiprocessing库和subprocess库的区别与使用
多进程,多线程介绍请阅读blog python多线程编程请阅读blog 文章目录 一.mutiprocessing库与subprocess库的区别 二.multiprocessing使用介绍 1. 创 ...
- 使用Python的多进程模块
多核CPU已经成为现代计算机体系结构发展的标准,不仅可以在超级计算机设备中找到,也可以在我们的家用台式机和笔记本电脑中找到;就连苹果(Apple)的iPhone 5S在2013年也配备了1.3 Ghz ...
- python processing_python --- mulitprocessing(多进程)模块使用
1. 什么是进程? 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执 ...
- python php multiprocessing,Python多进程并发(multiprocessing)用法实例详解
本文实例讲述了Python多进程并发(multiprocessing)用法.分享给大家供大家参考.具体分析如下: 由于Python设计的限制(我说的是咱们常用的CPython).最多只能用满1个CPU ...
- 多进程(Multiprocessing)
多进程(Multiprocessing) 源自莫烦python多进程教学 一.多进程的定义和优点 多进程相当于多核处理,它能弥补threading的缺点 即它可以把任务平均分配给每一个核,并且让它们同 ...
- python3 多进程库 multiprocessing 使用简介
引子 前段时间在做的一个Python项目,需要实现一个后台服务程序,程序流程比较复杂,而且可能经常变动,但是如果把整个流程切分成一些步骤,每个步骤有自己的输入输出和处理.只要将他们的输入输出接在一起, ...
最新文章
- 性能调优之Java系统级性能监控及优化
- module ‘open3d‘ has no attribute ‘PointCloud‘
- 28和lba48命令格式区别_linux硬盘分区、格式化、挂载超详细步骤
- 遗传算法求最短路径(旅行商问题)python实现
- Matrix Completion with Noise
- 检查最后出现子字符串的位置!
- c++11支持类数据成员的初始化
- python发起http请求(httplib)
- 通过css使文字有渐变的效果
- (6)二进制文件方式部署Kubernetes高可用集群----------安装Docker Engine
- java 临时文件 删除_Java临时文件何时被删除?
- 编写一个第三方库(动态库和静态库)
- mysql 打开sql日志,记录所有sql
- PostgreSQL 设置远程访问
- html组态插件_BY组态 插件 web组态 插件 物联网组态 插件
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
- 算法:分治法之合并排序
- SqlServer Tigger
- MSE H265 支持调查
- 1085: [SCOI2005]骑士精神