Python 34(进程重点)
一:开启进程的两种方式(*****)
#开启进程的方式一: from multiprocessing import Process import timedef task(name):print('%s is running' % name)time.sleep(3)print('%s is done' % name)# 在window系统上,开启子进程的操作必须放到if __name__ == '__main__'的子代码中 if __name__ == '__main__':p = Process(target=task, args=('nuanxin',)) # Process(target=task,kwargs={'name':'nuanxin'})p.start() # 只是向操作系统发送了一个开启子进程的信号print('混世魔王')
终端打印:
主
子进程 is running
子进程 is done
Process finished with exit code 0
# 开启进程的方式二: from multiprocessing import Process import timeclass Myprocess(Process):def __init__(self, name):super().__init__()self.name = namedef run(self):print('%s is runing' % self.name)time.sleep(3)print('%s is done' % self.name)# windows系统上,开启子进程的操作系统必须放到if __name__ == '__main__'的子代码中 if __name__ == '__main__':p = Myprocess('nuanxin')p.start() # 只是向操作系统发送了一个开启进程的信号print('混世魔王')
终端打印:
子进程 is running
子进程 is done
主
Process finished with exit code 0
二:进程对象的join方法(*****)
# join:让主进程在原地等待,等待进程运行完毕,不会影响进程的执行 from multiprocessing import Process import timedef task(name, n):print('%s is running' % name)time.sleep(3)print('%s is done' % name)if __name__ == '__main__':p1 = Process(target=task, args=('子1', 1))p2 = Process(target=task, args=('子2', 2))p3 = Process(target=task, args=('子3', 3))start = time.time()p1.start()p2.start()p3.start()time.sleep(5)p3.join() # 3 p1.join()p2.join()print('混世魔王', (time.time() - start)) # 5.027485609054565 5.029683589935303 5.025939464569092 start = time.time()p_l = []for i in range(1, 4):p = Process(target=task, args=('子%s' % i, i))p_l.append(p)p.start()for p in p_l:p.join()print('混世魔王', (time.time() - start))
终端打印:
子进程 is running
子进程 is running
子进程 is running
子进程 is done
子进程 is done
子进程 is done
Process finished with exit code 0
三:进程对象之间内存空间隔离(*****)
进程和进程之间的空间不会互相干扰,没办法直接获取另一个进程空间里的数据,要获取只有一种办法,就是写到文件里面再获取
from multiprocessing import Processn=100 def task():global nn=0if __name__ == '__main__':p=Process(target=task)p.start()p.join()print(n)
View Code
转载于:https://www.cnblogs.com/zedong/p/9594095.html
Python 34(进程重点)相关推荐
- python的进程线程和协程_python成长之路 :线程、进程和协程
python线程 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分 ...
- Python之进程+线程+协程(异步、selectors模块、阻塞、非阻塞IO)
文章目录 一.IO多路复用 二.selectors模块 本篇文字是关于IO多路复用的更深入一步的总结,上一篇 Python之进程+线程+协程(事件驱动模型.IO多路复用.select与epoll)对I ...
- Python之进程的玩法
Python Process的简单教程 Python的进程只用还是很简单的,不过也有几点与其他语言不一样.这里,做一个总结类型的笔记. 第一篇,只是简单介绍使用方法,不会详解进程间的通信 一. 简单的 ...
- python之进程和线程的对比
python之进程和线程的对比 1. 进程和线程的对比的三个方向 关系对比 区别对比 优缺点对比 2. 关系对比 线程是依附在进程里面的,没有进程就没有线程. 一个进程默认提供一条线程,进程可以创建多 ...
- Python实例浅谈之五Python守护进程和脚本单例运行
一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程组.工作目录以及文件创建掩码等:它可以在系统启动时从启动脚本/etc/rc ...
- Python当前进程信息 (os包)
Python当前进程信息 (os包) 我们在Linux的概念与体系,多次提及进程的重要性.Python的os包中有查询和修改进程信息的函数.学习Python的这些工具也有助于理解Linux体系. 进程 ...
- 在linux下python爬虫进程发生异常时自动重启直至正常结束的方法
在linux下python爬虫进程发生异常时自动重启直至正常结束的方法 参考文章: (1)在linux下python爬虫进程发生异常时自动重启直至正常结束的方法 (2)https://www.cnbl ...
- Python守护进程和脚本单例运行
2019独角兽企业重金招聘Python工程师标准>>> 一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程 ...
- Python创建进程、线程的两种方式
代码创建进程和线程的两种方式 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. ...
- python并行计算进程池通信_Python使用进程池管理进程和进程间通信
与线程池类似的是,如果程序需要启动多个进程,也可以使用进程池来管理进程.程序可以通过 multiprocessing 模块的 Pool() 函数创建进程池,进程池实际上是 multiprocessin ...
最新文章
- Web开发学习点滴(持续更新)
- 高频焊台源码,改进版V2
- 【正一专栏】轮回-从坚信去年骑士会逆转到今年坚定看好勇士横扫
- PHP外部引用样式,PHP引用外部css有什么好处
- 3.7 SE11创建自建表-外键
- shell脚本的一些用法笔记
- mfc与mysql_MFC与MySql的链接 VS2008
- matlab分析分子动力学,分子动力学程序框架
- ipad关闭系统更新显示无服务器,iOS系统自动更新太烦?一招教你永久屏蔽 iOS 系统更新!...
- 74LS138-三人表决电路
- Softmax函数及其导数
- 农行网银登录无法显示该网页_登录网银无法显示网页
- 谈SPFA解差分约束最大值最小值的原理...
- -moz、-ms、-webkit, -o各什么意思
- android多个悬浮窗口,android 添加随意拖动的桌面悬浮窗口
- 关于Linux的介绍与安装
- 开源软件新时代:55个经典开源Windows工具
- 如何做一个好的管理者
- 红尘烟火,在等谁的相濡以沫?
- python虚拟环境管理 —— 以 workon 切换虚拟环境