![]() |
1
1
您可以异步启动任务,然后将 future 在备忘录里。任何询问备忘录结果的人都会遇到以下三种状态之一:没有备忘录(因此启动一个新的昂贵的外部处理任务)、未完成的未来备忘录(您可以等待它,或者承认它还没有完成,然后去做其他事情,直到它完成)或已完成的未来备忘录(结果立即可用)。这样,可以避免在处理之前发出几个相同的请求。请注意,期货仅从3.5开始提供。 你也可以理解为什么这项任务要花这么长时间。如果 计算 是很重的,那是不可能的;但是如果 启动 是很重的(这是我在做这样的事情时经常有的经验)。在这种情况下,将另一个可执行文件封装成具有循环并可以通信(最容易的是Web服务)是非常有用的。这样就可以获得真正的每请求开销,完全避免了为每个请求生成一个新的子流程所带来的启动开销。 |
![]() |
2
1
你可以用 multiprocessing 要并行启动函数,请使用 multiprocessing.Queue 使缓存在进程之间保持同步。 |
![]() |
Temperosa · 多处理。水塘map不能并行工作 7 年前 |
![]() |
Alex Gao · 加速或矢量化熊猫应用函数-需要有条件地应用函数 7 年前 |
![]() |
Teknophilia · 多处理提前退出 7 年前 |
![]() |
xxCodexx · 在Python中从父函数启动进程 7 年前 |
![]() |
Aenaon · 分组依据/应用熊猫和多处理 7 年前 |