繁体   English   中英

新控制台python中的多处理运行进程以获取每个进程的输入

[英]multiprocessing run process in new console python to get input for each process

我正在尝试同时运行同一类的多个实例。 每个实例都有一个需要输入的方法。

我有一个需要同时在不同地方运行的模块。 这些模块彼此独立运行。 我应该能够从控制(主)模块发出模块实例的信号。 所以我试图用多线程来做到这一点,但我无法同时获得输入。 下面的代码返回 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

我看起来您正在尝试实现一个将运行函数的 MP 池。 请参考: https : //docs.python.org/3/library/multiprocessing.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM