multiprocessing相关内容

在 Python 中,我如何知道一个进程何时完成?

我从 Python GUI (PyGTK) 中启动一个进程(使用多处理).该过程需要很长时间(约 20 分钟)才能完成.该过程完成后,我想对其进行清理(提取结果并加入该过程).我如何知道该过程何时完成? 我的同事建议在父进程中使用一个繁忙的循环来检查子进程是否已完成.肯定有更好的方法. 在 Unix 中,当一个进程被分叉时,子进程完成后从父进程中调用信号处理程序.但我在 Python ..

使用 Python 多处理管理器 (BaseManager/SyncManager) 与远程机器共享队列时管道损坏

上个月,当我们尝试使用 Python 2.6.x 多处理包在多台不同 (linux) 计算机之间共享队列时,我们遇到了一个持续存在的问题.我也直接向 Jesse Noller 提出了这个问题,因为我们还没有在 StackOverflow、Python 文档、源代码或其他在线网站上找到任何说明该问题的内容. 我们的工程师团队无法解决这个问题,我们向 python 用户组中的很多人提出了这个问题 ..
发布时间:2022-01-12 13:05:59 Python

Python Multiprocessing - 将类方法应用于对象列表

有没有一种简单的方法可以使用多处理来完成此操作? sim_list 中的 sim:sim.run() 其中 sim_list 的元素是“模拟"对象,而 run() 是模拟类的一个方法,它确实修改对象的属性.例如: 类模拟:def __init__(self):self.state['done']=Falseself.cmd="程序"定义运行(自我):subprocess.call(self. ..
发布时间:2022-01-12 13:05:52 Python

如何在 Python 中使用 Managers() 在多个进程之间共享字符串?

我需要从主进程中读取由 multiprocessing.Process 实例编写的字符串.我已经使用管理器和队列将参数传递给进程,所以使用管理器似乎很明显,但是Managers不支持字符串: Manager() 返回的管理器将支持类型列表、字典、命名空间、锁、RLock、信号量、有界信号量、条件、事件、队列、值和数组. 如何使用多处理模块中的管理器共享由字符串表示的状态? 解决方 ..
发布时间:2022-01-12 13:05:40 Python

python多处理的生产者/消费者问题

我正在编写一个有一个生产者和多个消费者的服务器程序,让我感到困惑的是只有第一个放入队列的任务生产者得到消耗,之后排队的任务不再被消耗,它们仍然存在永远在队列中. from multiprocessing import Process, Queue, cpu_count从 http 导入 httpserv进口时间def 工作(队列):而真:任务 = queue.get()如果任务是无:休息时间.s ..
发布时间:2022-01-12 13:05:23 Python

在python中控制用于调用外部命令的子进程数

我了解使用 subprocess 是调用外部命令的首选方式. 但是,如果我想并行运行多个命令,但要限制生成的进程数怎么办?困扰我的是我无法阻止子进程.例如,如果我调用 subprocess.Popen(cmd, stderr=outputfile, stdout=outputfile) 然后该过程将继续,无需等待 cmd 完成.因此,我无法将其包装在 multiprocessing 库的 ..
发布时间:2022-01-12 13:05:07 Python

python多处理管理器列表错误:[Errno 2]没有这样的文件或目录

我在 python 中编写了一个多处理程序.我使用 multiprocessing.Manager().list() 在子进程中共享列表.首先,我在主流程中添加了一些任务.然后,启动一些子进程来执行共享列表中的任务,子进程也将任务添加到共享列表中.但我得到了一个例外: Traceback(最近一次调用最后一次):_bootstrap 中的文件“/usr/lib64/python2.6/mult ..
发布时间:2022-01-12 13:04:58 Python

MRI Ruby 的并发请求

我整理了一个简单的例子,试图用一个基本的例子来证明 Rails 中的并发请求.请注意,我使用的是 MRI Ruby2 和 Rails 4.2. def api_call睡觉(10)渲染:json =>“完毕"结尾 然后,我在我的 Mac(I7/4 核)上的 Chrome 中转到 4 个不同的选项卡,看看它们是串行运行还是并行运行(实际上是并发的,这很接近,但不是一回事).即,http://l ..

单线程应用程序是否在 android 中使用多核?

单线程应用程序是否使用四核手机中的所有 4 核.我搜索了很多,发现一些文章说是,有些说不是.有些文章甚至说 android 操作系统不使用 4 核. Android 是否能够在四核处理器中使用所有 4 个内核? 单线程应用程序是否使用多核? 解决方案 答案是YES. Android 基本上是基于 Linux 内核构建的,该内核确实利用了多核.就单线程应用程序而言,请记住一 ..
发布时间:2022-01-12 13:04:39 移动开发

为什么 numpy 计算不受全局解释器锁的影响?

我正在尝试决定是否应该使用多处理或线程,并且我学到了一些关于 全局解释器锁.在这篇不错的博文中,似乎多线程不适合繁忙的任务.但是,我也了解到某些功能,例如 I/O 或 numpy,不受 GIL 的影响. 谁能解释一下原因,以及我如何确定我的(可能是相当 numpy-heavy)代码是否适合多线程? 解决方案 许多 numpy 计算不受 GIL 影响,但不是全部. 在不需要 Py ..
发布时间:2022-01-12 13:04:30 Python

delay() 函数有什么作用(在 Python 中与 joblib 一起使用时)

我已经阅读了 文档,但我不明白这是什么意思:延迟函数是一个简单的技巧,可以使用函数调用语法创建元组(函数、args、kwargs). 我正在使用它来遍历我想要操作的列表(allImages),如下所示: def joblib_loop():并行(n_jobs=8)(延迟(getHog)(i)对于所有图像中的 i) 这会返回我想要的 HOG 功能(并使用我所有的 8 个内核来提高速度),但 ..
发布时间:2022-01-12 13:04:17 Python

如何终止多处理池进程?

我正在开发渲染农场,我需要我的客户能够启动渲染器的多个实例,而不会阻塞,以便客户端可以接收新命令.我的工作正常,但是在终止创建的进程时遇到问题. 在全局级别,我定义了我的池(以便我可以从任何函数访问它): p = 池(2) 然后我用 apply_async 调用我的渲染器: for i in range(totalInstances):p.apply_async(render, (al ..
发布时间:2022-01-12 13:04:03 Python

使用多处理时出现 PicklingError

在多处理模块中使用 Pool.map_async()(以及 Pool.map())时遇到问题.我已经实现了一个并行循环函数,只要 Pool.map_async 的函数输入是“常规"函数,它就可以正常工作.功能.当功能是例如一个类的方法,然后我得到一个 PicklingError: cPickle.PicklingError: Can't pickle : 属性查 ..
发布时间:2022-01-12 13:03:54 Python

python multiprocessing apply_async 只使用一个进程

我有一个脚本,其中包括从列表中打开一个文件,然后对该文件中的文本执行某些操作.我正在使用 python 多处理和 Pool 来尝试并行化此操作.脚本的抽象如下: 导入操作系统从多处理导入池结果 = []def testFunc(文件):对于文件中的文件:打印“正在处理#%d"% (os.getpid())#这只是一些逻辑的说明.这不是我实际在做的事情.对于文件中的行:如果“狗"在行:结果.附加( ..
发布时间:2022-01-12 13:03:47 Python

如何在 Python 中对类实例使用多处理?

我正在尝试创建一个类,它可以运行一个单独的进程来完成一些需要很长时间的工作,从一个主模块启动一堆这些,然后等待它们全部完成.我想启动一次流程,然后继续为它们提供要做的事情,而不是创建和破坏流程.例如,也许我有 10 台服务器运行 dd 命令,然后我希望它们都 scp 文件等. 我的最终目标是为每个系统创建一个类,以跟踪与其关联的系统的信息,例如 IP 地址、日志、运行时等.但是该类必须能够启 ..
发布时间:2022-01-12 13:03:38 Python

multiprocessing.Pool 示例

我正在尝试学习如何使用 multiprocessing,结果发现 下面的例子. 我想对值求和如下: 来自多处理导入池从时间进口时间N = 10K = 50w = 0def CostlyFunction(z):r = 0对于 xrange(1, K+2) 中的 k:r += z ** (1/k**1.5)打印w += r返回 r当前时间 = 时间()po = 池()对于 xrange(N) ..
发布时间:2022-01-12 13:03:30 Python