Python多处理示例无济于事



我正在尝试学习Python多处理,但是当我尝试从文档中运行以下示例代码时,什么也不会发生。什么都没有印刷,也不例外,没有任何东西。

from multiprocessing import Process
def f(name):
    print('hello', name)
if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

但是,另一个示例的工作原理:

from multiprocessing import Pool
def f(x):
    return x*x
if __name__ == '__main__':
    with Pool(5) as p:
        print(p.map(f, [1, 2, 3]))

我已经检查了一下是否是一个特定于环境的问题,现在我更加困惑了。如果我在空闲中显示的第一个示例,那就不起作用。如果我在命令提示符中的交互式解释器中运行它,它也无效。但是,如果我在带有命令提示符的同一代码的同一代码上运行.py文件,则可以使用。有人知道实际发生了什么吗?为什么运行相同的代码会产生不同的结果?

(如果很重要,我目前在Windows 10机器上(

闲置由于替换sys.stdout和公司而具有异常怪异的行为;无论是否互动,您都可以得到一些奇怪的行为。

multiprocessing通常在交互式解释器中运行不太好,尤其是在"叉仿真"无法真正模拟它的窗口中。

坚持在实际脚本中测试multiprocessing相关内容。

相关内容

  • 没有找到相关文章

最新更新