簡體   English   中英

Windows上使用Python的多處理管道

[英]Multiprocessing pipes on windows with python

Windows是否支持multithreading.pipes()? 如果是,那么此代碼有什么問題? 我需要使用減少量嗎? 該代碼掛在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()

您需要將管道代碼放入__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