繁体   English   中英

可导入的`multiprocessing.Pool`函数

[英]Importable `multiprocessing.Pool` function

这可能很简单,我只是找不到合适的问题。

如果我用multiprocessing.Pool做一个独立的脚本,我知道我应该这样做:

def foo(x):
    return x**2

if __name__ == '__main__':
    with Pool(n_jobs) as p:
        p.map(foo, list_of_inputs)

但是,如果我想使其成为可导入函数,则假定__name__将不再是'__main__' 这样做是否安全:

def __foo(x):
    return x**2

def bar(list_of_inputs, n_jobs):
    with Pool(n_jobs) as p:
        out = p.map(__foo, list_of_inputs)
    return out

###################################################

from test.py import bar

baz = bar(mylist, 4)

我假设是这样,因为bar将仅在调用进程中被调用,然后在子进程中仅foo将被调用,但是我只是想知道这通常是否是一种安全的方法。

我认为您的代码在python3和python2中对我来说没有问题,如果我不对Pool使用with语句,我认为这没有问题。 我认为,这是使用multiprocessing一种安全方法,我不明白为什么您会遇到这种无限的悬挂 您正在使用哪个版本的Python?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM