当前位置: 首页 > 面试题库 >

Python多处理示例不起作用

傅边浩
2023-03-14
问题内容

我正在尝试学习使用方法,multiprocessing但无法正常工作。这是文档中的代码

from multiprocessing import Process

def f(name):
    print 'hello', name

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

它应该输出

你好鲍勃

但是我得到了

没有错误或其他消息,它只是坐在那里,它IDLE从32位版本的python 2.7的Windows 7计算机上的已保存.py文件中运行


问题答案:

我的猜测是您正在使用IDLE尝试运行此脚本。不幸的是,此示例无法在IDLE中正确运行。请注意文档开头的注释:

注意:此软件包中的功能要求子 模块可以导入
模块。编程指南中对此进行了介绍,但是这里值得指出。这意味着某些示例(例如multiprocessing.Pool示例)在交互式解释器中不起作用。

__main__即使您将脚本作为带有IDLE的文件运行(通常使用F5完成),该模块也无法由IDLE中的子级导入。



 类似资料:
  • 问题内容: 我正在尝试并行化脚本,但是由于未知的原因,内核只是冻结而没有引发任何错误。 最小的工作示例: 有趣的是,如果我在另一个文件中定义函数然后将其导入,则一切都可以正常工作。如何使它工作而无需另一个文件? 我使用spyder(anaconda),如果从Windows命令行运行代码,则结果相同。 问题答案: 发生这种情况是因为在子进程导入时,您没有保护代码的“过程”部分免于重新执行。 它们需要

  • 我正在尝试JUnit5TestContainers快速启动示例:

  • 我甚至不能使用Python 2.7中运行的多重处理包(使用spyder作为窗口上的用户界面)进行并行处理的最简单的例子,我需要帮助解决这个问题。我已经运行了conda更新,所以所有的包都应该是最新的和兼容的。 即使多处理软件包文档(如下所示)中的第一个示例也不起作用,它会生成4个新进程,但控制台只是挂起。在过去的3天里,我已经尝试了我能找到的一切,但是没有一个不挂起就运行的代码能够将我25%以上的

  • 按预期更正代码:从多处理导入池导入信号导入时间导入操作系统 ================================================== 我发现了问题,当我使用map函数时,主func被阻塞,只有map函数被funish时才会调用信号处理程序。所以,使用"map_async"函数来解决这个问题要好得多。 以下是我的发现: 纯用C语言实现的长时间运行的计算(例如对大量文本进行

  • 问题内容: 我是Socket.IO的100%新手,并且刚刚安装了它。我试图遵循一些示例,并且可以使服务器端运行,但似乎无法使客户端连接。 以下是我的server.js: 这是我的index.html 当我执行node server.js时,它指示socket.io已启动。 当我加载index.html时,出现一行,指出“调试-服务静态/socket.io.js”,但除此之外,没有控制台消息或其他行

  • 问题内容: 我正在尝试运行JavaKinesisWordCountASL示例。 该示例似乎连接到我的Kinesis Stream并从该流中获取数据(如下面的日志所示)。但是,在示例中,Sparks不会调用传递给unionStreams.flatMap方法的调用函数,并且不会打印任何单词计数。 我尝试同时使用Java 8和Java 7运行。我正在ubuntu实例上运行它。相同的示例适用于我的Macb