所以我拿了下面的代码,运行它,实际上什么也没发生。 Python 表现得好像它已经完成了一切(也许它已经完成了)但没有打印任何内容。任何帮助使其正常工作将不胜感激!

import multiprocessing

def worker(number):
    print number
    return

if __name__ == '__main__':
    test = multiprocessing.Process(target=worker, args=[0,1,2,3,4])
    test.start()

最佳答案

您的代码实际上应该会导致错误。 argsmultiprocessing.Process() 参数不会为每个参数打开一个进程,它只是将列表中的参数提供给单个函数,然后在子进程中调用该函数。要运行 5 个这样的独立实例,您必须执行以下操作:

import multiprocessing

def worker(number):
    print number
    return

if __name__ == '__main__':
    procs = []

    for i in range(5):
        procs.append(multiprocessing.Process(target=worker, args=[i]))

    [proc.start() for proc in procs]

关于python多处理根本不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15236325/

10-14 06:57