除了程序崩溃之外,子多处理没有打印输出.Process

时间:2008-12-14 22:07:56

标签: python multithreading io multiprocessing

我遇到了Python多处理模块的问题。我正在使用Process类来生成一个新进程,以便利用我的第二个核心。第二个过程将一堆数据加载到RAM中,然后耐心等待而不是消耗。

我想查看使用print命令打印的进程,但是,我看不到它打印的任何内容。我只看到父进程打印的内容。现在这对我来说很有意义,因为他们生活在两个不同的过程中。第二个进程不会生成自己的shell /标准输出窗口,也不会将其输出发送给父进程。然而,当这个过程崩溃时,它会打印我的脚本告诉它打印的所有内容,以及堆栈跟踪和错误。

我想知道是否有一种简单的方法可以将子进程的打印输出发送到第一个进程,或者让它生成一个shell /标准输出,以便我可以调试它。我知道我可以创建一个multiprocessing.Queue专门用于将打印件传输到父级,以便它可以将这些打印到标准输出,但如果存在更简单的解决方案,我不想这样做。

1 个答案:

答案 0 :(得分:23)

你试过刷过标准输出法吗?

import sys
print "foo"
sys.stdout.flush()