python多进程multiprocessing使用,看这篇就够了(二)

2023-11-08

1.上篇都是直接创建Process对象来创建子进程,其实还可以通过继承来创建子进程。

来看看Process源码,可以通过承继Process,重写run方法来启动子进程。因为对一个不包括target属性(即当target=None时)的Process类执行start()方法,就会运行类中的run()方法。

2.使用进程池Pool创建进程

Pool进程池,可以把进程池比做一个水池,假设我们要完成放满10个水盆水的任务,在这个水池中,最多可以放三个水盆,也就是最多能用三个水盆接水。

Pool有2种启动方式,

1. apply_async()  非阻塞方式(并行,异步),见下,下面代码创建了一个3个进程的进程池,在执行10个任务时,每次都是同时三个进程启动执行三个任务。回到放水任务,相当于有三个水笼头,三个水盆同时接水,每个水盆接满了就将水倒进桶里再重新接水。一直接满10个水盆的水。这三个水盆是同时接水的,并行,异步,互不干涉。

 

 2. apply(),阻塞式,进程池里的进程按顺序执行,必须一个进程执行完了才能继续下一个进程。回到放水任务,相当于有三个水盆,但是只有一个水笼头能用,三个水盆按顺序排好,一个接满了才能放另一个进去,轮流接水,一般不用这个方法来启动,失去了多进程的作用。

 close(), 关闭Pool, 不再接受新的任务。即整个池子不再使用,已运行的进程会继续运行完。

terminate(), 不管任务是否完成,彻底终止任务,相当直接杀死进程,不管是运行的还是没运行的,所有进程all die!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python多进程multiprocessing使用,看这篇就够了(二) 的相关文章

  • 将 JSON 发布到 Python CGI

    我已经安装了 Apache2 并且 Python 可以工作 但我有一个问题 我有两页 一个是 Python 页面 另一个是带有 JQuery 的 Html 页面 有人可以告诉我如何让我的 ajax 帖子正常工作吗
  • 如何在 Debian 上的 virtualenv 中安装 numpy?

    注 参见这另一篇文章 https stackoverflow com questions 6442754 how to install h5py numpylibhdf5 as non root on a debian linux syst
  • 为什么需要在 Python 方法中显式使用“self”参数? [复制]

    这个问题在这里已经有答案了 当在 Python 中的类上定义方法时 它看起来像这样 class MyClass object def init self x y self x x self y y 但在其他一些语言中 例如 C 您可以使用
  • 通过 python 中的另外两个修改数组[重复]

    这个问题在这里已经有答案了 假设我们有三个一维数组 A 长度为 5 B 长度相同 示例中为5 C 更长 比如长度为 100 C最初用零填充 A给出索引C应更改的元素 它们可能会重复 以及B给出应添加到初始零的值C 例如 如果A 1 3 3
  • 键入的完整命令行

    我想获得输入时的完整命令行 This join sys argv 在这里不起作用 删除双引号 另外 我不想重新加入已解析和拆分的内容 有任何想法吗 你太迟了 当键入的命令到达 Python 时 您的 shell 已经发挥了它的魔力 例如 引
  • 用 Python 绘制直方图

    我有两个列表 x 和 y x 包含字母表 A Z Y 包含它们在文件中的频率 我尝试研究如何在直方图中绘制这些值 但在理解如何绘制它方面没有成功 n bins patches plt hist x 26 normed 1 facecolor
  • Python - Unicode 到 ASCII 的转换

    我无法在不丢失数据的情况下将以下 Unicode 转换为 ASCII u ABRA xc3O JOS xc9 I tried encode and decode他们不会这么做 有人有建议吗 Unicode 字符u xce0 and u xc
  • ValueError:数据必须为正(boxcox scipy)

    我正在尝试将我的数据集转换为正态分布 0 8 298511e 03 1 3 055319e 01 2 6 938647e 02 3 2 904091e 02 4 7 422441e 02 5 6 074046e 02 6 9 265747e
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • Py2exe - Pmw WindowsError:[错误 3]

    我正在尝试使用 Py2exe 构建独立的可执行文件 我已经导入了 Pmw 类 当我运行独立可执行文件时 出现以下错误 Traceback most recent call last File py line 9 in
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • 无法使用 python rasterio、gdal 打开 jp2 (来自哨兵)

    我试图在 python 中将 jp2 栅格产品作为栅格打开 但当我们使用 raterio 和 gdal 包时没有成功 我收到此错误 RasterioIOError b4 jp2 not recognized as a supported f
  • Seaborn 中没有线性拟合的散点图

    我想知道是否有办法关闭seaborn中的线性拟合lmplot或者是否有一个等效函数可以生成散点图 当然 我也可以使用 matplotlib 但是 我发现 seaborn 中的语法和美学非常吸引人 例如 我想绘制以下情节 import sea
  • 无法导入QUERY_TERMS

    我正在运行一个网站Python and Django Django filters 2 1 installed Django 2 1 installed 当我运行时 我收到以下错误 importError Could not import
  • Python 2.7 缩进错误[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • Python:如何在不先创建整个列表的情况下计算列表的总和?

    通常我们必须 1 声明一个列表 2 使用以下方法计算该列表的总和sum 但现在我希望指定一个以 1 开头 间隔为 4 100 个元素的列表 如下所示 1 5 9 13 17 21 25 29 33 37 我不想涉及数学公式 所以 1 如何在
  • 基于值的 matplotlib 条形图颜色

    有没有一种方法可以根据条形图的值对条形图的条形进行着色 例如 values below 0 5 red values between 0 5 to 0 green values between 0 to 08 blue etc 我找到了一些
  • 在Python中停止ThreadPool中的进程

    我一直在尝试为控制某些硬件的库编写一个交互式包装器 用于 ipython 有些调用对 IO 的影响很大 因此并行执行任务是有意义的 使用 ThreadPool 几乎 效果很好 from multiprocessing pool import

随机推荐

  • 【论文阅读】Learning Spatio-Temporal Representation with Pseudo-3D Residual Networks

    论文阅读 Learning Spatio Temporal Representation with Pseudo 3D Residual Networks 虽然这是一篇17年ICCV的论文 但是这篇论文里没有使用kinetics数据集 可能
  • 在UFT中使用描述性编程

    在 UFT 中使用描述性编程是一个提高UFT脚本利用率的很好的方式 通常UFT是通过对象库来识别不同的对象 而描述性编程是UFT另外一种能够识别对象的途径 它不依赖于对象库 通过增加一些对象的描述来识别对象的 说明 本例子是以Flight飞
  • 一个问答机器人模型该如何构建

    构建一个问答机器人模型 通常需要以下步骤 准备数据 需要大量的问题和答案对 以供模型学习 预处理数据 可能需要对数据进行分词 词性标注 去停用词等操作 以便输入模型进行训练 选择模型类型 常用的问答机器人模型类型有基于知识库的模型 基于生成
  • 网工学习笔记

    1 什么是IP地址 IP地址 Internet Protocol Address 互联网国际地址 是一种在Internet上的给主机编址的方式 它主要是为互联网上的每一个网络和每一台主机分配一个逻辑地址 以此来屏蔽物理地址的差异 IP地址就
  • APP脱壳之MDEX的使用步骤

    并不是每一个APP都会加壳 根据以往的经验 一般情况下加壳的有两种情况 第一种是像360公司 腾讯 百度这些公司 他们有自己的加壳技术 就会给自己需要加壳的产品都会加壳 第二种是普通APP 包括但不限于一些色情类的 或者其他用户体量不大的A
  • Cuda 学习教程六:执行模型

    Cuda 学习教程六 执行模型 今天看到一篇讲解CUDA模型的文章 很不错 转载记录一下 CUDA编程4 执行模型 上
  • 雨滴桌面插件大全_电脑技巧之桌面美化,字体美化,透明效果全都有

    Windows技巧 桌面美化篇 电脑的日常使用中 相信百分之九十九的玩家的电脑显示得最多的不是游戏也不是办公软件 而是桌面 一个干净整洁甚至是漂亮的桌面能够大幅度提高电脑日常使用的幸福感 今天我就来分享一下电脑的桌面美化软件 1 字体美化
  • 解决缺少api-ms-win-crt-runtime-

    答主在安装MongoDB的时候 遇到了api ms win crt runtime 1 1 0 dll的问题 历经两天时间终于解决 下面是我的解决历程 首先是这个图 这个是因为没有微软的visual2015c 运行库环境 需要安装 地址 h
  • 刷脸识别改变支付零售日常生活

    据对相貌特征信息的生物辨认技能促就了刷脸付的诞生 并且付宝官方力推刷脸付旨在替代了扫码付出 当然新型的刷脸付款方式关于很多人仍是比较忧虑的 觉得会存在必定安全隐患 那么刷脸付安全吗 有保证吗 那么下面就来解答大家所忧虑的刷脸付安全性问题 早
  • webpack打包入口指定某文件夹内所有js作为入口文件

    webpack config js webpack config js const path require path const glob require glob module exports 指定 packs 文件夹下的 js 文件作
  • Navicat连接MySQL时弹出:1045:Access denied for user ‘root’@’localhost’

    错误原因 当登录MySQL数据库出现 Error 1045 错误时 表明你输入的用户名或密码错误被拒绝访问了 也可能是你的账号不允许从远程登录 只能在localhost本地登录数据库 解决办法如下 用管理员权限打开cmd 并且cd进入mys
  • 点云读取加速c++ ASCii 模式ply 或者txt

    相较于Qt Qtextstream的性能提升十倍 本文点云格式特殊 有需要自行修改即可 QFile dataFile fileName bool ret dataFile open QIODevice ReadOnly QIODevice
  • 浅谈JS的微任务和宏任务(附加面试题)

    Event Loop 因为JS是单线程 就是说 同一个时间只能做一件事 为了协调事件 用户交互 脚本 UI 渲染和网络处理等行为 防止主线程的不阻塞 Event Loop 的方案应用而生 掌握知识点 JS分为同步任务和异步任务 同步任务都在
  • (C语言)指针初识(1)——指针概念及指针类型

    指针 看似是一个令人头疼的问题 静下心来慢慢学习 指针这个主题 分成了几个的板块 比较多 耐心看完 一定会有收获啦 慢慢来 总是需要一个循序渐进的过程 目录 一 什么是指针 二 指针和指针类型 指针类型的意义 结论1 结论2 一 什么是指针
  • vue 和 react的对比

    vue 比react的优缺点 对比1 github 全球开发者星星点赞数量 此数据结果摘取于 2021年3月份 结论 vue 胜出 尤雨溪一个人撑起一个生态 战胜高手林立的巨头公司facebook 相当的传奇 对比2 React VS Vu
  • easyrecovery2023永久免费版激活密钥,手把手教您用EasyRecovery快速恢复数据

    Ontrack EasyRecovery Crack Professional是一个全面的备份和恢复实用程序 可以从多个数据丢失事件中恢复文件 例如常见的意外删除 更严重的 有时是病毒引起的 分区或驱动器格式化 甚至硬盘严重损坏后的数据丢失
  • 阿里Java代码规范

    代码规范 一 编程规约 一 命名风格 二 常量定义 三 代码格式 四 OOP 规约 五 集合处理 六 并发处理 七 控制语句 八 注释规约 九 其它 二 异常日志 一 异常处理 二 日志规约 三 单元测试 四 安全规约 五 MySQL 数据
  • YAML用法详解

    1 简介 YAML YAML Ain t Markup Language j m l 设计目标是方便人类读写 它实质上是一种通用的数据串行化格式 远比 JSON 格式方便 1 1 它的基本语法规则如下 大小写敏感 使用缩进表示层级关系 缩进
  • Spring Cloud之LB-Ribbon调用流程和源码分析(二)

    接着上面的一篇关于Spring Cloud之Open Feign调用流程和源码分析 解析feign在rpc调用的时候lb的组成及底层工作流程 关键组件介绍 ServerList 可以响应客户端的特定服务的服务器列表 ServerListFi
  • python多进程multiprocessing使用,看这篇就够了(二)

    1 上篇都是直接创建Process对象来创建子进程 其实还可以通过继承来创建子进程 来看看Process源码 可以通过承继Process 重写run方法来启动子进程 因为对一个不包括target属性 即当target None时 的Proc