问题标签 [multiprocessing-manager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
51 浏览

python - 如何使用 multirpocessing.Manager.Queue 为 while 循环运行 python 多处理进程?

我有一些旨在在 while 循环中运行的进程。我基本上有一些过程使用 来计算一些值do_performance,然后我希望它们被一些规则(如mc_scheduler方法)操纵,直到计算的值满足 while 循环中的预定义标准。下面是我的简化代码。有两个 python class;一个是 multiprocess.Process 的子类(类Worker),另一个是我的类(类MonteCarlo

我的问题是

  1. 我的机器不使用 n_proc 进程,它只使用了 1 个进程。
  2. 如何改进我的代码?请在这方面帮助我。
0 投票
0 回答
29 浏览

openpyxl - 使用多处理管理器加载 openpyxl 时出错

我有一个脚本,旨在通过多处理管理器将 excel 工作簿(通过 openpyxl)传递给多个工作人员。

似乎以某种方式在多处理管理器中未正确表示 openpyxl 对象,并且该对象被不正确地重新实例化,并给出以下错误消息: TypeError: __init__() missing 1 required positional argument: 'worksheet'

这是一个MWE:

as manager环境之外操作时,读取对象属性可以正常工作,但是在该环境中执行时,Error会引发 。

我在这里看到openpyxl和多处理可能存在一些问题,但就我而言,我只是在阅读excel。

0 投票
1 回答
35 浏览

python - Python multiprocessing manger.list() 未正确传递给 Matplotlib.animation

我有这两个进程,其中一个使用 manager.list() 创建的列表在它们之间共享,一个称为 DATA(),它正在“生成”数据并附加到列表中,另一个是使用 Matplotlib 动画 FuncAnimation 绘制该数据。

我遇到的问题是,一旦我将列表传递给 animate 函数

[ani = FuncAnimation(plt.gcf(),animate,fargs= (List,), interval=1000)]

该函数正在接收<class 'int'>而不是<class multiprocessing.managers.ListProxy' >

有谁知道为什么会这样?

0 投票
1 回答
38 浏览

python - Python 中的管理器如何读写?

抱歉,如果这是一个愚蠢的问题,但我无法理解管理人员在 python 中的工作方式。

假设我有一个包含要在所有进程之间共享的字典的管理器。我希望一次只有一个进程写入字典,而许多其他进程从字典中读取。

  1. 这是否可以同时发生,没有同步原语,或者如果同时发生读/写操作会中断?
  2. 如果我想让多个进程一次写入字典怎么办 - 这是允许的还是会中断(我知道它可能导致竞争条件,但它会出错)?
  3. 此外,管理器是否以队列的方式处理每个读取和写入事务,一次一个,还是一次处理所有事务?

https://docs.python.org/3/library/multiprocessing.html#sharing-state-between-processes

0 投票
2 回答
60 浏览

python - 在进程之间共享异步对象

我正在使用 theasynciomultiprocessinglibrary 来运行两个进程,每个进程都有一个服务器实例在不同的端口上侦听传入消息。

为了识别每个客户端,我想dict在两个进程之间共享一个来更新已知客户端的列表。为了实现这一点,我决定使用一个查找键,它为此连接Tuple[StreamReader, StreamWriter]分配了一个对象。Client

但是,只要我插入或简单地访问共享字典,程序就会崩溃并显示以下错误消息:

我自然查了一下错误信息,发现了这个问题,但我真的不明白这是什么原因。据我了解,此崩溃的原因是StreamReader并且StreamWriter不能被腌制/序列化以便在进程之间共享。如果这实际上是原因,有没有办法腌制它们,也许通过修补减速器功能来代替使用不同的腌制器?

0 投票
1 回答
35 浏览

python - 如何在多处理管理器中共享复杂对象

我知道很多线程都在问这个问题,但到目前为止我找不到合适的解决方案。下面是我的代码:

在主函数中

d 保存由多个进程创建的对象。但是当它运行时,对象内部的变量不会在进程之间共享。

请指教

0 投票
1 回答
90 浏览

python - 使用 multiprocessing.Manager 在进程之间共享列表

第一个 ''' 将多处理导入为 mp

''' 结果:list_in_sub: [0, 1, 0, 1, 0, 1, 0, 1, 0, 1] list_in_main: [0, 1]

第二个 ''' 将多处理导入为 mp

''' 结果:list_in_sub: 无 list_in_main: [0, 1, 5]

0 投票
1 回答
69 浏览

python - Python多处理不能使用来自其他模块的函数

更新:将我的 Spyder 更新到 5.0.5 后它正在工作。感谢大家!

我正在尝试使用多处理来加速循环。下面的代码旨在生成 10000 个随机向量。

我的想法是将任务拆分为 5 个进程并将其存储在result. 但是,当我运行代码时,它返回了一个空列表。

result = add_one(result)但是,如果我在函数中删除randomize_data,代码运行完美。因此,错误必须来自使用Testing.test多处理中其他模块()的函数。

这是add_one来自的函数Testing.test

如何在进程内使用其他模块的功能?谢谢你。

0 投票
0 回答
90 浏览

pyspark - 带有 UDF 的 EMR 上的多处理 Manager().dict()

我在 EMR 上运行它,但我在此处包含了一个示例 df 以显示示例。我需要添加一个经理,以便所有工人都能看到我的字典。

在我将管理器放入之前,该脚本运行正常,并且在我通过 UDF 运行它之前它仍然正常运行。我在下面添加了一些错误消息。

该脚本接受一个代码并检查该代码是否被使用(即:在 used_codes 字典中)。如果代码没有被使用,那么它会吐出相同的代码,如果它被使用过,那么它会生成一个新代码。我正在使用所有唯一代码的新列“code_id”创建一个 new_df。

我相信问题在于这些代码行:

完整脚本

错误信息

0 投票
1 回答
47 浏览

python - 进程和线程之间共享和更新列表

尝试在主进程 - 主线程和子进程 - 子线程之间共享和更新列表。目前看来,主进程和主线程共享一个列表副本的更新,而子进程和子线程共享另一个列表副本。我原以为经理会允许在所有 4 人之间共享列表。非常感谢任何帮助。

代码:

输出: