python - 除非程序崩溃,否则子 multiprocessing.Process 没有打印输出

标签 python multithreading io multiprocessing

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

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

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

最佳答案

您是否尝试过刷新标准输出?

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

关于python - 除非程序崩溃,否则子 multiprocessing.Process 没有打印输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/367053/

相关文章:

python - 线程1 :EXC_BAD_INSTRACTION

python - 如何在 ipython 启动时将目录添加到 sys.path

python - 空间内存错误

multithreading - Google Guava Cache 是否在同一个线程上加载?

python - 如何将打印精美的数据框读入 Pandas 数据框?

WPF UI 线程状态

java - 为什么此 Servlet 在其 "Thread Per Connection"策略中使用多个线程?

c# - C# 中的 I/O 级联

hadoop - 使用 reducer 会减慢映射器

Java IO、输入流和输出流测试