我想制作一个可以同时运行的多处理程序。
所以我希望我的进程每5秒进行一次计数,而另一个进程不断要求输入并打印输入。
并且要求两个输入的过程应该在无限循环中运行,因为稍后我要更改它,以便每个输入在第一个过程中都是数值变量的值。 (如果您也有任何想法可以帮助我解决这个问题,请告诉我!我非常感谢)
这是我拥有的代码,它只是给我 EOFError:读取行时出现EOF
import os
import time
from multiprocessing import Process
def doubler():
number =0
while True:
proc = os.getpid()
print('num : {0} by procss id : {1}'.format(number,proc))
time.sleep(5)
def test():
while True:
x = raw_input("input x : ")
y = raw_input("input y : ")
print('x = {0}, y = {1}'.format(x,y))
if __name__ == '__main__':
proc1 = Process(target=doubler)
proc2 = Process(target=test)
procs = []
procs.append(proc1)
procs.append(proc2)
proc1.start()
proc2.start()
for proc in procs:
proc.join()
结果---> EOF错误:读取一行时出现EOF
答案 0 :(得分:0)
我很抱歉成为手指王子,但我在stackoverflow中发现了这一点: ” 当您在Python中生成线程时,它将关闭stdin。您不能使用子流程来收集标准输入。使用主线程来收集输入,然后将其从主线程发布到队列中。可以将stdin传递给另一个线程,但是您可能需要在主线程中将其关闭。 “
这不是我写的,而是卡尔的答案。 F。 Python command line input in a process