如何在 python 中使用多处理?

2024-04-13

import time
from multiprocessing import Process
start = time.perf_counter()


def sleep():
    print('Sleeping 1 second(s)...')
    time.sleep(1)
    return 'Done Sleeping...'

p1 = Process(target = sleep)
p2 = Process(target = sleep)
p1.start()
p2.start()
p1.join()
p2.join()
finish = time.perf_counter()
print(f'Finished in {round(finish-start, 2)} second(s)')

output:

Finished in 0.17 second(s)

我尝试使用多重处理,但是当我运行代码时,它在 0.17~ 秒内结束,而不是应有的 1 秒,它根本没有启动该功能......

如果我像这样加上括号:

p1 = Process(target = sleep())
p2 = Process(target = sleep())

output:

Sleeping 1 second(s)...
Sleeping 1 second(s)...
Finished in 2.35 second(s)

Windows 10.Python 3.7.4 谢谢你:)


我已经解决了这个问题,为了使您的代码正常工作,您应该添加 if__name__ == '__main__'。您的两个新进程都需要访问您的 def sleep() 为了做到这一点,您必须通过以下方式分隔代码的“可执行”部分__name__ == "__main__"或者将 def sleep() 放入另一个文件中并从那里导出 from filename import sleep

import time
from multiprocessing import Process
start = time.perf_counter()


def sleep():
    print('Sleeping 1 second(s)...')
    time.sleep(1)
    return 'Done Sleeping...'


if __name__ == "__main__":
    p1 = Process(target = sleep)
    p2 = Process(target = sleep)
    p1.start()
    p2.start()
    p1.join()
    p2.join()
    finish = time.perf_counter()
    print(f'Finished in {round(finish-start, 2)} second(s)')

希望答案对您有用。

Doug Hellmann 的网站形式书籍“Python 3 标准库示例”:

线程和多处理示例之间的一个区别是额外的保护 为了__main__包含在多处理示例中。由于新流程的方式 启动后,子进程需要能够导入包含目标函数的脚本。 将应用程序的主要部分包装在检查中__main__确保它确实如此 导入模块时,不会在每个子级中递归运行。另一种方法是导入 来自单独脚本的目标函数。例如,multiprocessing_import_main.py 使用第二个模块中定义的工作函数。

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

如何在 python 中使用多处理? 的相关文章

  • 将 transaction.commit_manually() 升级到 Django > 1.6

    我继承了为 Django 1 4 编写的应用程序的一些代码 我们需要更新代码库以使用 Django 1 7 并最终更新到 1 8 作为下一个长期支持版本 在一些地方它使用旧风格 transaction commit manually and
  • 如何使用 colorchecker 在 opencv 中进行颜色校准?

    我有数码相机获取的色彩检查器图像 我如何使用它来使用 opencv 校准图像 按照以下颜色检查器图像操作 您是想问如何进行颜色校准或如何使用 OpenCV 进行校准 为了进行颜色校准 您可以使用校准板的最后一行 灰色调 以下是您应该逐步进行
  • 从 Python 下载/安装 Windows 更新

    我正在编写一个脚本来自动安装 Windows 更新 我可以将其部署在多台计算机上 这样我就不必担心手动更新它们 我想用 Python 编写这个 但找不到任何关于如何完成此操作的信息 我需要知道如何搜索更新 下载更新并从 python 脚本安
  • 在Python中如何获取字典的部分视图?

    是否有可能获得部分视图dict在Python中类似于pandasdf tail df head 说你有很长一段时间dict 而您只想检查某些元素 开头 结尾等 dict 就像是 dict head 3 To see the first 3
  • Pyqt-如何因另一个组合框数据而更改组合框数据?

    我有一个表 有 4 列 这 4 列中的两列是关于功能的 一个是特征 另一个是子特征 在每一列中 所有单元格都有组合框 我可以在这些单元格中打开txt 我想 当我选择电影院作为功能时 我只想看到子功能组合框中的电影名称 而不是我的 数据 中的
  • Pandas dataframe:每批行的操作

    我有一个熊猫数据框df我想计算每批行的一些统计信息 例如 假设我有一个batch size 200000 对于每批batch sizerows 我想要一列的唯一值的数量ID我的数据框 我怎样才能做这样的事情呢 这是我想要的一个例子 prin
  • 使用 NLTK 在 Python 中获取大量名词(或形容词);或 Python Mad Libs

    Like 这个问题 https stackoverflow com questions 7439555 noun adjective etc word lists or dictionaries common words 我有兴趣按词性获取
  • “一旦获取切片就无法更新查询”。最佳实践?

    由于我的项目的性质 我发现自己不断地从查询集中取出切片 如下所示 Thread objects filter board requested board id order by updatedate 10 但这给我带来了实际对我选择的元素进
  • 小部件之间的自定义信号

    尝试将信号从一个 gtk EventBox 子级发送到另一个 在 init HeadMode 第 75 行 上出现错误 类型错误 未知信号名称 消息发送 why usr bin env python coding utf8 import p
  • 如何从下面的html中提取数据?

    我想要从中提取数据的 Html 是 div class infoMessageInner p span class ng binding Fiber r best lld till adressen Tj nsterna kan du be
  • CNTK 抱怨 LSTM 中的动态轴

    我正在尝试在 CNTK 中实现 LSTM 使用 Python 来对序列进行分类 Input 特征是固定长度的数字序列 时间序列 标签是 one hot 值的向量 Network input input variable input dim
  • 在相同任务上,Keras 比 TensorFlow 慢

    我正在使用 Python 运行斩首 DCNN 本例中为 Inception V3 来获取图像特征 我使用的是 Anaconda Py3 6 和 Windows7 使用 TensorFlow 时 我将会话保存在变量中 感谢 jdehesa 并
  • 设置 verify_certs=False 但 elasticsearch.Elasticsearch 因证书验证失败而引发 SSL 错误

    self host KibanaProxy 自我端口 443 self user 测试 self password 测试 我需要禁止证书验证 使用选项时它与curl一起使用 k在命令行上 但是 在使用 Elasticsearch pytho
  • Python:我不明白 sum() 的完整用法

    当然 我明白你使用 sum 与几个数字 然后它总结所有 但我正在查看它的文档 我发现了这一点 sum iterable start 第二个参数 start 的作用是什么 这太尴尬了 但我似乎无法通过谷歌找到任何示例 并且对于尝试学习该语言的
  • Django - 提交具有同一字段多个输入的表单

    预警 我对 Django 以及一般的 Web 开发 非常陌生 我使用 Django 托管一个基于 Web 的 UI 该 UI 将从简短的调查中获取用户输入 通过我用 Python 开发的一些分析来提供输入 然后在 UI 中呈现这些分析的可视
  • 字符串列表,获取n个元素的公共子串,Python

    我的问题可能类似于this https stackoverflow com questions 37514193 count the number of occurrences of n length not given string in
  • 导入错误:无法导入名称“时间戳”

    我使用以下代码在 python 3 6 3 中成功安装了 ggplot conda install c conda forge ggplot 但是当我使用下面的代码将其导入笔记本时 出现错误 from ggplot import Impor
  • 如何在PIL中从ImageDraw中获取图像?

    我在我的项目中使用 PIL 并且有 ImageDraw 对象 我想获取在 ImageDraw 对象上绘制的图像 我如何获取图像 这是你想要的 from PIL import Image ImageDraw im Image new RGBA
  • 异常:加载数据时 URL 获取失败

    我正在尝试设置我的机器来运行 Tensorflow 2 我从未使用过 Tensorflow 只是下载了 Python 3 7 我不确定这是否是我的机器的问题 我按照上面列出的安装说明进行操作TensorFlow 的网站 https www
  • 使用Multiprocessing和Pool时如何访问全局变量?

    我试图避免将变量冗余地传递到dataList e g 1 globalDict 2 globalDict 3 globalDict 并在全球范围内使用它们 global globalDict然而 在下面的代码中并不是这样做的解决方案 是否有

随机推荐

  • 通过 HTTP 替代方案访问 JMX

    我们使用 MX4J 通过容器本身的 Web 界面访问 JMX 相关操作 属性 我想知道是否有可用的替代方案 因为 MX4J 的最后一个服务版本是在 2006 年 我基本上希望克服 MX4J 在处理集合方面的限制 I was 实验 http
  • 如何在 Linux 中以编程方式反转屏幕颜色

    例如 在 Ubuntu 中 您可以使用 Super M 反转屏幕颜色 需要桌面效果 请参阅 1 其他操作系统也有类似的功能 尽管我并不真正关心 Linux 以外的任何操作系统 如果我想编写一个在运行时反转屏幕颜色的简单程序 我应该考虑哪个
  • 如何将字符串中每个单词的第一个字母大写?

    s the brown fox 在这里做点什么 s应该 The Brown Fox 做到这一点最简单的方法是什么 The title http docs python org library stdtypes html str title字
  • VBS 脚本查找特定扩展名的所有文件并将它们复制到特定目的地

    我正在制作一个项目 通过创建一个脚本来在工作中使用来自动化我们的一个流程 我希望脚本检查用户名的输入 以搜索指定的用户配置文件路径中的任何 doc docx pdf pst 等文件 并将它们按原样复制到网络驱动器位置上创建的文件夹中 我的主
  • Grails 2抽象域继承问题

    当在 Grails 中使用抽象 或非抽象 继承时 以下内容对我不起作用 很快 我的继承如下 abstract BaseClass SomeClass extends BaseClass SomeOtherClass extends Base
  • Cordova iOS 启动 comgooglemaps 失败

    我有一个小问题 我使用 comgooglemaps 方案来调用谷歌地图并执行搜索 这工作正常 但问题是如果用户没有安装谷歌地图 现在 我如何检查这一点以及是否未安装谷歌地图以通过浏览器调用谷歌 或者调用用户使用的其他地图应用程序 Thanx
  • 使用 group_by(多个变量)时的 dplyr 问题

    我想开始使用 dplyr 代替 ddply 但我无法了解它是如何工作的 我已阅读文档 例如 为什么当我尝试 mutate 时 group by 函数无法按预期工作 看看mtcar 图书馆 车 假设我制作了一个 data frame 它是 m
  • UITableview 中的 UItextView,自动更正气泡不可见

    我有一个带有自定义单元格的 UITableView 每个单元格包含一个 UITextView 并且当用户在 TextView 中键入文本时 单元格会调整大小 我的问题是 当用户位于 TextView 自动更正第一行时 当前单元格中将看不到气
  • 将 HTML 类/ID 添加到 Google 地图标记 (API V3)

    如何向 Google Maps API V3 标记添加类或 ID 我希望能够使用 jQuery 访问标记 编辑 嗨 clarkf 感谢您的回复 使用 Firebug 在检查我的地图时我无法看到这些类 但我确实注意到有两个 div 一种用于图
  • 在页面重新加载时传递 $_GET 参数[重复]

    这个问题在这里已经有答案了 我试图做到这一点 以便当页面重新加载时 它使用与上一页相同的 GET 参数来重定向我 现在我正在尝试使用标头来实现此目的 但是当我提交表单时 变量 id 为空 HTML 表单
  • 为什么 Elastic Load Balancing 报告“停止服务”?

    我正在尝试设置弹性负载均衡 ELB http aws amazon com elasticloadbalancing 在AWS中用于在多个实例之间拆分请求 我基于相同的 AMI 创建了多个网络服务器镜像 并且我能够单独 ssh 进入每个镜像
  • Windows 批处理 FOR 命令制表符分隔符

    我正在尝试使用 Windows 批处理FOR命令 http www microsoft com resources documentation windows xp all proddocs en us for mspx mfr true
  • 使用 junit @Rule、expectCause() 和 hamcrest 匹配器

    我有一个测试 Rule public ExpectedException thrown ExpectedException none Test public void testMethod final String error error
  • PyQt 的 QMainWindow closeEvent 从未被调用

    我在 python 中使用 pyqt4 当我关闭 QMainWindow 窗口时 它不被处理closeEvent方法 请有人告诉我这段代码有什么问题 from PyQt4 import QtCore QtGui class Ui MainW
  • 未找到节点检查器命令

    我尝试安装并运行node inspector使用一堆不同的命令仍然无法运行它 Jordans MacBook Pro angular express blog jordanbaucke node inspector bash node in
  • 为什么 Blazor 生命周期方法会执行两次?

    因此 随着 asp net core 3 0 和 blazor 1 0 的发布 我开始使用 blazor 进行一些实际工作 将 Blazor 组件代码拆分为后台代码时 我使用以下内容 public class LogoutModel Bla
  • 是否可以为 Microsoft SQL Server 上的 SQL 查询设置超时?

    我有一个场景 有时用户选择正确的参数并进行需要几分钟或更长时间才能执行的查询 我无法阻止他选择这样的参数组合 这是相当合法的 所以我想在查询上设置超时 请注意 我真的想停止查询执行本身并回滚任何事务 因为否则它会占用大部分服务器资源 如果添
  • Android WebView - 清除缓存

    我有一个 WebView 控件 我想每次显示当前站点 但我认为 WebView 只显示该站点的缓存版本 我尝试了所有发现的东西here https stackoverflow com questions 14392414 android w
  • 如何在 Twitter Bootstrap 中自定义响应列和输入字段?

    主要问题是如何自定义 bootstrap 响应式 css 我的代码部分有效 但我无法修复这种情况 这很难解释 所以为了更好地理解 我在屏幕截图上进行了可视化呈现 我发布了实际清理过的模板代码JSFIDDLE http jsfiddle ne
  • 如何在 python 中使用多处理?

    import time from multiprocessing import Process start time perf counter def sleep print Sleeping 1 second s time sleep 1