首页 > 解决方案 > Python多处理示例不打印

问题描述

我在网上找到了一个非常简单的多处理示例(如下所示)。出于某种原因,当我在 Spyder 中执行它时,它根本不会打印任何内容。它也不挂。我正在使用 Python 3.x。有谁知道为什么?

from multiprocessing import Process

def print_func(continent='Asia'):
    print('The name of continent is : ', continent)

if __name__ == "__main__":  # confirms that the code is under main function
    names = ['America', 'Europe', 'Africa']
    procs = []
    proc = Process(target=print_func)  # instantiating without any argument
    procs.append(proc)
    proc.start()

    # instantiating process with arguments
    for name in names:
        # print(name)
        proc = Process(target=print_func, args=(name,))
        procs.append(proc)
        proc.start()

    # complete the processes
    for proc in procs:
        proc.join()

标签: python

解决方案


当你在线程或其他进程中你不会得到它的标准输出,所以如果你想记录你最好使用 python 日志记录文档链接:https ://docs.python.org/3/library/logging.html

您还可以查看更多解决方案https://eli.thegreenplace.net/2015/redirecting-all-kinds-of-stdout-in-python/


推荐阅读