简体   繁体   English

Windows上使用Python的多处理管道

[英]Multiprocessing pipes on windows with python

Does Windows support multithreading.pipes()? Windows是否支持multithreading.pipes()? If yes, then what is wrong with this code? 如果是,那么此代码有什么问题? Do I need to be using reduction? 我需要使用减少量吗? The code hangs on p2.recv() and I get a RuntimeError when run from the command line. 该代码挂在p2.recv()上,从命令行运行时出现RuntimeError。

import multiprocessing
def ProcessCreator(pipe):
    pipe.send("hello from other process")

p1, p2 = multiprocessing.Pipe()
proc = multiprocessing.Process(target = ProcessCreator, args = (p2,))
proc.start()
print p1.recv()

if __name__ == "__main__":
    multiprocessing.freeze_support()

You need put pipe code into if __name__ == '__main__' part.( Why? ) And change p2.recv to p1.recv 您需要将管道代码放入__name__ =='__main__'部分。( 为什么? )并将p2.recv更改为p1.recv

import multiprocessing
def ProcessCreator(pipe):
    pipe.send("hello from other process")

if __name__ == "__main__":
    multiprocessing.freeze_support()
    p1, p2 = multiprocessing.Pipe()
    proc = multiprocessing.Process(target = ProcessCreator, args = (p2,))
    proc.start()
    print p1.recv()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM