【问题标题】:multiprocessing run process in new console python to get input for each process多处理在新控制台 python 中运行进程以获取每个进程的输入
【发布时间】: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

【问题讨论】:

    标签: python multithreading multiprocessing subprocess


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-27
      • 2019-09-29
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2019-05-02
      • 2020-03-04
      相关资源
      最近更新 更多