pool.apply()的非常基本的多处理示例从不调用函数或终止

问题描述 投票:0回答:1

我试图在下面建立multiprocessing的基本示例。然而,执行只打印here<_MainProcess(MainProcess, started)>pool.apply()甚至从来没有调用函数cube()。相反,执行只是无限期地保持运行而不终止。

import multiprocessing as mp

def cube(x):
    print('in function')
    return x**3

if __name__ == '__main__':
    pool = mp.Pool(processes=4)
    print('here')
    print(mp.current_process())

    results = [pool.apply(cube, args=(x,)) for x in range(1,7)]
    print('now here')

    pool.close()
    pool.join()
    print(results)

我尝试了各种其他基本的例子,包括pool.map(),但仍然遇到同样的问题。我在Windows 10上使用Python 3.7。由于我没有想法,有没有人知道这里有什么问题或者我如何进一步调试?

谢谢!

python python-multiprocessing pool
1个回答
0
投票

谢谢,升级到Python 3.7.3解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.