Python 使用多处理和处理输入
我想制作一个并发运行的多处理程序 所以我希望我的进程保持每5秒计数一次,而另一个进程则要求输入并打印它 请求两个输入的进程应该在一个无限循环中运行,因为稍后我想更改它,使每个输入在第一个进程中都是一个数值变量。 (如果你也有任何想法来帮助我,请让我知道!我真的很感激) 这是我的代码,它给了我 EOF:读取一行时的EOFPython 使用多处理和处理输入,python,multiprocessing,Python,Multiprocessing,我想制作一个并发运行的多处理程序 所以我希望我的进程保持每5秒计数一次,而另一个进程则要求输入并打印它 请求两个输入的进程应该在一个无限循环中运行,因为稍后我想更改它,使每个输入在第一个进程中都是一个数值变量。 (如果你也有任何想法来帮助我,请让我知道!我真的很感激) 这是我的代码,它给了我 EOF:读取一行时的EOF import os import time from multiprocessing import Process def doubler(): number =0
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()
结果--->EOFError:EOF当我读一行时,我很抱歉成为一个手指王子,但我在stackoverflow中发现了这一点:
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()
"
在Python中生成线程时,它会关闭stdin。不能使用子进程收集标准输入。请改用主线程收集输入,并将其从主线程发布到队列中。可以将stdin传递给另一个线程,但可能需要在主线程中关闭它。
"
这不是我写的,而是卡尔的回答。F
我很抱歉成为手指王子,但我在stackoverflow中发现了这一点: " 在Python中生成线程时,它会关闭stdin。不能使用子进程收集标准输入。请改用主线程收集输入,并将其从主线程发布到队列中。可以将stdin传递给另一个线程,但可能需要在主线程中关闭它。 " 这不是我写的,而是卡尔的回答。F