使用多处理创建同一进程的多个实例
Create multiple instances of the same process with multiprocessing
我正在尝试制作一个程序,其中主进程处理所有传入连接,然后将它们交给不同的进程来托管服务器。但是我遇到了 运行 问题,我不相信我可以使用 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 = []
之后是空的,但您尝试访问此列表 (process[i] = ...
) 的现有(实际上还不存在)元素。尝试使用 process.append(mp.Process(target = startserver))
或相同的东西。
我正在尝试制作一个程序,其中主进程处理所有传入连接,然后将它们交给不同的进程来托管服务器。但是我遇到了 运行 问题,我不相信我可以使用 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 = []
之后是空的,但您尝试访问此列表 (process[i] = ...
) 的现有(实际上还不存在)元素。尝试使用 process.append(mp.Process(target = startserver))
或相同的东西。