多处理在新控制台 python 中运行进程以获取每个进程的输入
Posted
技术标签:
【中文标题】多处理在新控制台 python 中运行进程以获取每个进程的输入【英文标题】:multiprocessing run process in new console python to get input for each process 【发布时间】:2021-02-24 05:54:25 【问题描述】:我正在尝试同时运行同一类的多个实例。每个实例都有一个需要输入的方法。
我有一个模块需要同时在不同的地方运行。这些模块彼此独立运行。我应该能够从 control(main) 模块发出模块实例的信号。所以我尝试使用多线程来做到这一点,但我无法同时获得输入。下面的代码返回 EOF 错误。
import multiprocessing as mp
import time
class Concurrent():
def __init__(self):
pass
def myMethod(self):
value = input("Enter input : ")
num = int(input("Enter number of process to run : "))
obj_arr=[]
for i in range(num):
obj = Concurrent()
obj_arr.append(obj)
def func(obj):
obj.myMethod()
ps = []
for obj in obj_arr:
p = mp.Process(target = func,args = (obj,))
ps.append(p)
[x.start() for x in ps]
我收到此错误
Traceback (most recent call last):
File "/usr/lib/python3.8/multiprocessing/process.py", line 315, in
_bootstrap
self.run()
File "/usr/lib/python3.8/multiprocessing/process.py", line 108, in
run
self._target(*self._args, **self._kwargs)
File "concurrent.py", line 21, in func
obj.stressCPU()
File "concurrent.py", line 10, in stressCPU
value = input("Enter input : ")
EOFError: EOF when reading a line
【问题讨论】:
【参考方案1】:我看起来您正在尝试实现一个将运行函数的 MP 池。 请参考:https://docs.python.org/3/library/multiprocessing.html
【讨论】:
以上是关于多处理在新控制台 python 中运行进程以获取每个进程的输入的主要内容,如果未能解决你的问题,请参考以下文章