gpt4 book ai didi

python - 是否可以在带有 Windows 的模块中使用多处理?

转载 作者:可可西里 更新时间:2023-11-01 09:36:51 26 4
gpt4 key购买 nike

我目前正在研究一些预先存在的代码,目的是加快速度。有几个地方非常适合并行化。由于 Python 有 GIL,我想我会使用多进程模块。

然而,根据我的理解,这将在 Windows 上运行的唯一方法是,如果我使用 if __name__=='__main__' 保护从最高级别的脚本调用需要多个进程的函数。然而,这个特定的程序是作为一个模块分发和导入的,所以让用户复制和粘贴该保护措施有点笨拙,这是我真正想避免做的事情。

就多处理而言,我是运气不好还是误解了什么?还是有任何其他方法可以在 Windows 上执行此操作?

最佳答案

对于仍在搜索的每个人:

模块内部

from multiprocessing import Process

def printing(a):
print(a)

def foo(name):
var={"process":{}}
if name == "__main__":
for i in range(10):
var["process"][i] = Process(target=printing , args=(str(i)))
var["process"][i].start()

for i in range(10):
var["process"][i].join

在 main.py 中

import data

name = __name__

data.foo(name)

输出:

>>2
>>6
>>0
>>4
>>8
>>3
>>1
>>9
>>5
>>7

我是一个完全的菜鸟,所以请不要评判编码或演示,但至少它有效。

关于python - 是否可以在带有 Windows 的模块中使用多处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37737085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com