【问题标题】:Create multiple instances of the same process with multiprocessing使用多处理创建同一进程的多个实例
【发布时间】:2019-12-13 15:52:36
【问题描述】:

我正在尝试制作一个程序,其中主进程处理所有传入连接,然后将它们交给不同的进程来托管服务器。但是我遇到了一个问题,我不相信我可以使用 pool 来做到这一点。这是我的代码:

import multiprocessing as mp

def startserver():
    print("hi")
if __name__ == '__main__':
    mp.set_start_method('spawn')
    process = []
    command = 1
    i = 0
    while True:
        if command == 1:
            process[i] = mp.Process(target = startserver)
            process[i].start()
            i += 1
            if i == 10:
                break

但是当我这样做时,我得到的只是错误:

 File "server.py", line 12, in <module>
 process[i] = multiprocessing.Process(target = startserver)
 IndexError: list assignment index out of range

提前致谢!

【问题讨论】:

  • 有什么问题?你有什么问题?
  • 您不能以这种方式将元素添加到列表中。你需要使用process.append()。不要采取错误的方式,但我会在进入多线程之前解决python的基础知识。否则你会度过一段非常沮丧的时光。

标签: python python-multiprocessing


【解决方案1】:

看起来您的列表在字符串process = [] 之后为空,但您尝试访问此列表 (process[i] = ...) 的现有(实际上还不存在)元素。尝试使用process.append(mp.Process(target = startserver)) 或相同的东西。

【讨论】:

    猜你喜欢
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 2016-04-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多