【1】

学习【Python多进程运行——Multiprocessing基础教程1 - 知乎 (zhihu.com)】

为什么需要多进程

假设我们的计算机只有一个单核的处理器,然后同时被分配了几个任务,那么它就不得不在各个任务中来回切换,短暂地执行其中一个任务,然后中断,然后短暂地执行下一个任务,以保持所有的进程都在运行。这就像一个厨师在做面条,切几秒钟菜,跑去揉几下面,再赶紧查看下汤。

所以同时需要完成的任务越多,同时跟踪所有的任务就越困难。这就是多进程的必要性,也是多核处理器的威力所在。

一个支持多进程的操作系统可以做到:

  • 同时指挥多个CPU,即拥有一个以上的CPU的计算机
  • 指挥多核CPU,即拥有两个及以上的独立处理单元的CPU

这样,计算机就可以轻松地同时执行多个任务,每个任务都可以使用自己的处理器。就像之前举的例子,现在厨房里有专门的揉面师傅,备菜师傅,煮汤师傅。事情就变得轻松多了。

【2】

multiprocessing

multiprocessing模块支持使用类似于threading模块的API生成进程。multiprocessing模块提供了本地和远程计算机的并行处理能力,并且通过使用创建子进程,有效地避开了全局解释器锁(GIL)。因此,multiprocessing模块允许程序员充分利用机器上的多个处理器。目前,它可以在Unix和Windows上运行。

 importing the multiprocessing module
import multiprocessing def print_cube(num): print("Cube: {}".format(num * num * num)) def print_square(num): print("Square: {}".format(num * num)) if __name__ == "__main__": # creating processes p1 = multiprocessing.Process(target=print_square, args=(10, )) p2 = multiprocessing.Process(target=print_cube, args=(10, )) # starting process 1&2p1.start() p2.start() # wait until process 1&2 is finished p1.join() p2.join() # both processes finished print("Done!")

start()方法就是开始执行p1,p2两个进程。在进程开始执行后,主程序仍然会继续执行。为了让主程序暂停,我们就使用了join()方法。它的作用就是将主程序暂停,直到等待p1和p2完成。一旦它们都完成了,再执行之后的语句。



多进程,不等于多核cpu。只有多核cpu才能够多进程是错误说法

可实际上cpu核数和多进程没有必然联系。单核cpu也可以处理多进程。进程只是更高级的线程,可以理解成对线程的包装和组合。cpu在处理线程和进程时,都是用切换来实现。只是多核就不用切换频繁,效率更高。




【3】multiprocessing 一些参数:

构造方法:Process([group [, target [, name [, args [, kwargs]]]]])group: 线程组 target: 要执行的方法name: 进程名args/kwargs: 要传入方法的参数实例方法:is_alive():返回进程是否在运行,bool类型。join([timeout]):阻塞当前上下文环境的进程程,直到调用此方法的进程终止或到达指定的timeout(可选参数)。start():进程准备就绪,等待CPU调度run():strat()调用run方法,如果实例进程时未制定传入target,这star执行t默认run()方法。terminate():不管任务是否完成,立即停止工作进程属性:daemon:和线程的setDeamon功能一样name:进程名字pid:进程号

【4】代码:

自己随便写的,可以运行!




先学到这:) 之后用到的时候,遇到问题继续写:):)

多进程multiprocessing相关推荐

  1. Python编程基础:第六十节 多进程Multiprocessing

    第六十节 多进程Multiprocessing 前言 实践 前言 多进程能够在不同的CPU核心上并行运行任务,可以绕过用于线程的GIL. 多进程:更适合密集计算相关任务(cpu使用率高). 多线程:更 ...

  2. python 多进程multiprocessing 如何获取子进程的返回值?进程池pool,apply_async(),get(),

    案例1 # -*- coding: utf-8 -*- """ @File : 20200318_摄像头多进程流传输.py @Time : 2020/3/18 14:58 ...

  3. Python多线程threading和多进程multiprocessing的区别及代码实现

    1. 多线程threading import time from threading import Threaddef thread_read(data):while True:print('read ...

  4. Python 多进程 multiprocessing 使用示例

    参考:http://blog.csdn.net/qdx411324962/article/details/46810421 参考:http://www.lxway.com/4488626156.htm ...

  5. python multithreading_操作系统OS,Python - 多进程(multiprocessing)、多线程(multithreading)...

    多进程(multiprocessing) 参考: 1. 多进程概念 multiprocessing is a package that supports spawning processes usin ...

  6. python并发编程:协程asyncio、多线程threading、多进程multiprocessing

    python并发编程:协程.多线程.多进程 CPU密集型计算与IO密集型计算 多线程.多进程与协程的对比 多线程 创建多线程的方法 多线程实现的生产者-消费者爬虫 Lock解决线程安全问题 使用线程池 ...

  7. 操作系统 ---多进程 Multiprocessing

    操作系统 ---多进程,创建进程,结束进程 什么是进程 (Process) 多进程 Multiprocessing 进程的状态 PCB (Process Control Block) 上下文切换 (C ...

  8. Python并发之多进程multiprocessing(2)

    1, 多进程 vs 多线程 Python中的常见的并发模型分为两种: 多线程threading并发,多用于IO密集型计算 多进程multiprocessing并发,多用于CPU密集型计算 (1)IO密 ...

  9. python3 多进程 multiprocessing 报错 AttributeError: ‘ForkAwareLocal‘ object has no attribute ‘connection‘

    目录 错误代码 报错信息 错误原因 解决方法 错误代码 python多进程管理manager时候,当不使用join对当前进程(主进程)进行阻塞时会报错,具体代码及错误如下: from multipro ...

  10. python3 多进程 multiprocessing对僵尸进程的处理

    之所以想写这么一篇博客,是在学TCP/IP网络编程时,讲到多进程服务器的构建时,父进程需要对子进程进行处理,不然的话会产生一堆的僵尸进程,最后会危害整个系统.然后想到我之前写的爬虫,Dwonloade ...

最新文章

  1. 学习OpenCV——配置CUDA环境
  2. centos7 源码编译安装mysql 5.7.21
  3. 【Android工具】远程登录会话工具免费好用的SSH客户端——JuiceSSH
  4. 肝!教你用Python抓取某天下楼盘数据
  5. b站2020用户画像_B站2020年度动画大选来袭!论引战,还是要看B站!
  6. 埃及分数问题——迭代加深搜索
  7. 51nod-猴猴的比赛【莫队,线段树】
  8. redis相关(搭建和数据落盘)
  9. LaTeX设置参考文献条目行距以及条目内行距的方法
  10. 拓扑链表c语言,数据结构2.2 链表的实现
  11. 阿里云数据盘分区并挂载
  12. 使用springboot,Oauth2.0,jwt令牌实现单点登录,权限控制等功能的基本流程
  13. ubuntu查看电脑配置信息
  14. 《南方周末》今日发文揭开了这场抢票插件阻击战的内幕
  15. 在游戏界,就有了些游戏界的理解。不过本文是对某游戏开发商的信
  16. 【Roboware编译(小锤子)无法选择Debug选项】
  17. JavaScript今日所学 数组
  18. unity硬件接入(一)---Joystick
  19. 很猛很疯狂,北京楼市促销十年少见 房价下跌论渐占上风
  20. 学会做笔记-子弹笔记学习概要一

热门文章

  1. 【Latex】Texlive镜像安装问题解决open(>C:\Users\\x{00c2}ío\x{00c6}ó\x{00ee}\AppData\Local\Temp\sj5U6hahZk\tnOx_
  2. python pyc文件解析_pyc文件
  3. JS中的DOM操作属性、DOM创建、DOM增加、DOM修改、DOM删除以及DOM获取非行间样式
  4. 电脑死机应该如何处理
  5. IDEA——》设置方法的注释模板
  6. IDEA-自动补全功能
  7. sklearn应用总结
  8. 黑盒测试用例设计 - 判定表法
  9. 波分百科:400G线路传输方案
  10. 微信小程序开发 app.json全局配置