问题标签 [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.
python - 如何使用 multirpocessing.Manager.Queue 为 while 循环运行 python 多处理进程?
我有一些旨在在 while 循环中运行的进程。我基本上有一些过程使用 来计算一些值do_performance
,然后我希望它们被一些规则(如mc_scheduler
方法)操纵,直到计算的值满足 while 循环中的预定义标准。下面是我的简化代码。有两个 python class
;一个是 multiprocess.Process 的子类(类Worker
),另一个是我的类(类MonteCarlo
)
我的问题是
- 我的机器不使用 n_proc 进程,它只使用了 1 个进程。
- 如何改进我的代码?请在这方面帮助我。
openpyxl - 使用多处理管理器加载 openpyxl 时出错
我有一个脚本,旨在通过多处理管理器将 excel 工作簿(通过 openpyxl)传递给多个工作人员。
似乎以某种方式在多处理管理器中未正确表示 openpyxl 对象,并且该对象被不正确地重新实例化,并给出以下错误消息:
TypeError: __init__() missing 1 required positional argument: 'worksheet'
这是一个MWE:
在as manager
环境之外操作时,读取对象属性可以正常工作,但是在该环境中执行时,Error
会引发 。
我在这里看到openpyxl和多处理可能存在一些问题,但就我而言,我只是在阅读excel。
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' >。
有谁知道为什么会这样?
python - Python 中的管理器如何读写?
抱歉,如果这是一个愚蠢的问题,但我无法理解管理人员在 python 中的工作方式。
假设我有一个包含要在所有进程之间共享的字典的管理器。我希望一次只有一个进程写入字典,而许多其他进程从字典中读取。
- 这是否可以同时发生,没有同步原语,或者如果同时发生读/写操作会中断?
- 如果我想让多个进程一次写入字典怎么办 - 这是允许的还是会中断(我知道它可能导致竞争条件,但它会出错)?
- 此外,管理器是否以队列的方式处理每个读取和写入事务,一次一个,还是一次处理所有事务?
https://docs.python.org/3/library/multiprocessing.html#sharing-state-between-processes
python - 在进程之间共享异步对象
我正在使用 theasyncio
和multiprocessing
library 来运行两个进程,每个进程都有一个服务器实例在不同的端口上侦听传入消息。
为了识别每个客户端,我想dict
在两个进程之间共享一个来更新已知客户端的列表。为了实现这一点,我决定使用一个查找键,它为此连接Tuple[StreamReader, StreamWriter]
分配了一个对象。Client
但是,只要我插入或简单地访问共享字典,程序就会崩溃并显示以下错误消息:
我自然查了一下错误信息,发现了这个问题,但我真的不明白这是什么原因。据我了解,此崩溃的原因是StreamReader
并且StreamWriter
不能被腌制/序列化以便在进程之间共享。如果这实际上是原因,有没有办法腌制它们,也许通过修补减速器功能来代替使用不同的腌制器?
python - 如何在多处理管理器中共享复杂对象
我知道很多线程都在问这个问题,但到目前为止我找不到合适的解决方案。下面是我的代码:
在主函数中
d 保存由多个进程创建的对象。但是当它运行时,对象内部的变量不会在进程之间共享。
请指教
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]
python - Python多处理不能使用来自其他模块的函数
更新:将我的 Spyder 更新到 5.0.5 后它正在工作。感谢大家!
我正在尝试使用多处理来加速循环。下面的代码旨在生成 10000 个随机向量。
我的想法是将任务拆分为 5 个进程并将其存储在result
. 但是,当我运行代码时,它返回了一个空列表。
result = add_one(result)
但是,如果我在函数中删除randomize_data
,代码运行完美。因此,错误必须来自使用Testing.test
多处理中其他模块()的函数。
这是add_one
来自的函数Testing.test
:
如何在进程内使用其他模块的功能?谢谢你。
pyspark - 带有 UDF 的 EMR 上的多处理 Manager().dict()
我在 EMR 上运行它,但我在此处包含了一个示例 df 以显示示例。我需要添加一个经理,以便所有工人都能看到我的字典。
在我将管理器放入之前,该脚本运行正常,并且在我通过 UDF 运行它之前它仍然正常运行。我在下面添加了一些错误消息。
该脚本接受一个代码并检查该代码是否被使用(即:在 used_codes 字典中)。如果代码没有被使用,那么它会吐出相同的代码,如果它被使用过,那么它会生成一个新代码。我正在使用所有唯一代码的新列“code_id”创建一个 new_df。
我相信问题在于这些代码行:
完整脚本
错误信息
python - 进程和线程之间共享和更新列表
尝试在主进程 - 主线程和子进程 - 子线程之间共享和更新列表。目前看来,主进程和主线程共享一个列表副本的更新,而子进程和子线程共享另一个列表副本。我原以为经理会允许在所有 4 人之间共享列表。非常感谢任何帮助。
代码:
输出: