没有打印的Python多处理开始和停止?

时间:2017-07-11 10:13:52

标签: python multiprocessing

当我开始或停止进程时,stdout中有一行如<Process(Process-1, started)>。但我不想打印出这一行,我该如何防止这种情况?

我的代码:

import multiprocessing as mp

def spawn(f):
    def func(pipe, param):
        pipe.send(f(param))
        pipe.close()
    return func


def parallel_map(func, params, num_of_processes=None):
    num_of_processes = mp.cpu_count() if not num_of_processes else num_of_processes
    pipes = [mp.Pipe() for i in range(num_of_processes)]
    result = []
    for step in xrange(0, len(params), num_of_processes):
        tmp_nop = num_of_processes if step + num_of_processes <= len(params) else len(params) - step
        processes = [mp.Process(target=spawn(func), args=(pipes[i][1], params[step + i]))
                     for i in range(tmp_nop)]
        for process in processes:
            process.start()
        for process in processes:
            print process
            process.join()
        result = result + [p.recv() for (p, c) in pipes[:tmp_nop]]
    return result

1 个答案:

答案 0 :(得分:1)

出于某种原因,您在代码中包含了一行print process,可以打印出您不希望打印的内容。删除该行,一切都应该好。