鹏鹏的博客

额嗯嗯嗯...博文写不写?随缘



Pyhton3 Flask 项目多进程重复创建的问题

使用 Flask 的项目,一开始是这么写的

processes = [mp.Process(target=func1), mp.Process(target=func2)]
for process in processes:
    process.start()

运行时发现每个进程都被启动了 2 次,但是不在 Flask 项目里,这么写又是没问题的

import multiprocessing as mp

def func1():
    print("123")

def func2():
    print("456")

if __name__ == '__main__':
    processes = [mp.Process(target=func1), mp.Process(target=func2)]
    for process in processes:
        process.start()

之后又在这段代码上加上 Flask 框架,依旧没有重现出问题

import multiprocessing as mp
from flask import Flask

app = Flask(__name__)

def func1():
    print("123")

def func2():
    print("456")

if __name__ == '__main__':
    processes = [mp.Process(target=func1), mp.Process(target=func2)]
    for process in processes:
        process.start()
    app.run(host='0.0.0.0')

当打开了 Flask 的调试模式后,重现出了问题,每个进程被启动了两遍

可见是启动了调试模式以后,进程会加倍一次,具体原因及调试模式的原理没深入了解