最简单的事情是交换
get_input(),
do_more_things()即
sys.stdin在父进程中读取:
def get_input(stdin): for line in iter(stdin.readline, ''): print("hello", line, end='') stdin.close()if __name__ == '__main__': p1 = mp.Process(target=do_more_things) p1.start() get_input(sys.stdin)下一个最好的方法是使用a
Thread()代替
Process()for
get_input():
if __name__ == '__main__': t = Thread(target=get_input, args=(sys.stdin,)) t.start() do_more_things()
如果以上方法没有帮助,您可以尝试
os.dup():
newstdin = os.fdopen(os.dup(sys.stdin.fileno()))try: p = Process(target=get_input, args=(newstdin,)) p.start() finally: newstdin.close() # close in the parentdo_more_things()



