一:开启进程的两种方式(*****)

#开启进程的方式一:
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(进程重点)相关推荐

  1. python的进程线程和协程_python成长之路 :线程、进程和协程

    python线程 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分 ...

  2. Python之进程+线程+协程(异步、selectors模块、阻塞、非阻塞IO)

    文章目录 一.IO多路复用 二.selectors模块 本篇文字是关于IO多路复用的更深入一步的总结,上一篇 Python之进程+线程+协程(事件驱动模型.IO多路复用.select与epoll)对I ...

  3. Python之进程的玩法

    Python Process的简单教程 Python的进程只用还是很简单的,不过也有几点与其他语言不一样.这里,做一个总结类型的笔记. 第一篇,只是简单介绍使用方法,不会详解进程间的通信 一. 简单的 ...

  4. python之进程和线程的对比

    python之进程和线程的对比 1. 进程和线程的对比的三个方向 关系对比 区别对比 优缺点对比 2. 关系对比 线程是依附在进程里面的,没有进程就没有线程. 一个进程默认提供一条线程,进程可以创建多 ...

  5. Python实例浅谈之五Python守护进程和脚本单例运行

    一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程组.工作目录以及文件创建掩码等:它可以在系统启动时从启动脚本/etc/rc ...

  6. Python当前进程信息 (os包)

    Python当前进程信息 (os包) 我们在Linux的概念与体系,多次提及进程的重要性.Python的os包中有查询和修改进程信息的函数.学习Python的这些工具也有助于理解Linux体系. 进程 ...

  7. 在linux下python爬虫进程发生异常时自动重启直至正常结束的方法

    在linux下python爬虫进程发生异常时自动重启直至正常结束的方法 参考文章: (1)在linux下python爬虫进程发生异常时自动重启直至正常结束的方法 (2)https://www.cnbl ...

  8. Python守护进程和脚本单例运行

    2019独角兽企业重金招聘Python工程师标准>>> 一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程 ...

  9. Python创建进程、线程的两种方式

    代码创建进程和线程的两种方式 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. ...

  10. python并行计算进程池通信_Python使用进程池管理进程和进程间通信

    与线程池类似的是,如果程序需要启动多个进程,也可以使用进程池来管理进程.程序可以通过 multiprocessing 模块的 Pool() 函数创建进程池,进程池实际上是 multiprocessin ...

最新文章

  1. Web开发学习点滴(持续更新)
  2. 高频焊台源码,改进版V2
  3. 【正一专栏】轮回-从坚信去年骑士会逆转到今年坚定看好勇士横扫
  4. PHP外部引用样式,PHP引用外部css有什么好处
  5. 3.7 SE11创建自建表-外键
  6. shell脚本的一些用法笔记
  7. mfc与mysql_MFC与MySql的链接 VS2008
  8. matlab分析分子动力学,分子动力学程序框架
  9. ipad关闭系统更新显示无服务器,iOS系统自动更新太烦?一招教你永久屏蔽 iOS 系统更新!...
  10. 74LS138-三人表决电路
  11. Softmax函数及其导数
  12. 农行网银登录无法显示该网页_登录网银无法显示网页
  13. 谈SPFA解差分约束最大值最小值的原理...
  14. -moz、-ms、-webkit, -o各什么意思
  15. android多个悬浮窗口,android 添加随意拖动的桌面悬浮窗口
  16. 关于Linux的介绍与安装
  17. 开源软件新时代:55个经典开源Windows工具
  18. 如何做一个好的管理者
  19. 红尘烟火,在等谁的相濡以沫?
  20. python虚拟环境管理 —— 以 workon 切换虚拟环境

热门文章

  1. U盘安装openSuse
  2. 总在说 Spring Boot 内置了 Tomcat 启动,那它的原理你说的清楚吗?
  3. Java Arrays.asList注意事项
  4. 程序员应该如何自我驱动,迅速获得成长?
  5. 数据库性能优化的误区!
  6. 比特币拒绝第 340 次“被死亡”
  7. 如何使用 Redis 实现大规模的帖子浏览计数
  8. String : string的长度?string的子串?
  9. 4.空悬指针和野指针
  10. linux设置脚本开机启动centos7,centos7设置开机启动