在“生成”多处理中,Python3加载模块内部函数以执行的过程

时间:2018-08-31 10:57:10

标签: python python-3.x python-multiprocessing spawn

请注意,以下所有说明均为w.r.t.多重处理的“ spawn”方法(与Windows兼容)。

将多重处理设置为“生成”方法时,将从主文件中加载新的处理。这是第一个通过在线搜索找到的信息。

我正在尝试更深入地研究,并加快新流程的加载(无论何时创建)。
这是关于我的项目的结构的一些想法:

<root>
<root>/main.py

<root>/modules/__init__.py
<root>/modules/app/__init__.py
<root>/modules/app/app.py

<root>/modules/app/middleware/__init__.py
<root>/modules/app/middleware/middleware.py

现在,当我尝试在middleware.py内创建一个进程时,它将尝试从main.py加载所有内容(并且加载了许多不必要的模块,这减慢了中间件中进程的加载过程.py)。

在我的代码中,main.py和app.py中也导入了很多额外的库,这减慢了第一次加载在middleware.py中创建的进程的速度。但是运行这些在Middleware.py中创建的过程并不需要这些额外的模块

1)如何尽可能快地(在首次启动Process时)加载middleware.py。是否可以直接在此新流程中加载中间件模块,而不是从main.py中加载所有内容?

2)我进行了实验,每当main.py以__mp_main__的身份运行时,有条件地不将app.py加载到main.py中(因此也不会加载middleware.py)。我期望这会导致Middleware.py永远不会在子进程中加载​​。但是我仍然注意到middleware.py已加载。这怎么可能?

0 个答案:

没有答案