python - 多进程池中的 p.close 和 p.join
问题描述
我正在按照 youtube 的指示学习多处理
from multiprocessing import Pool
import subprocess
import time
def f(n):
sum = 0
for x in range(1000):
sum += x*x
return sum
if __name__ == "__main__":
t1 = time.time()
p = Pool()
result = p.map(f, range(10000))
p.close()
p.join()
print("Pool took: ", time.time()-t1)
我很困惑p.close()
和p.join()
当进程关闭时,它们不再存在,如何操纵.join
它们?
解决方案
join()
等待子进程被杀死。被杀死的进程发送一个信号,通知他们的父母他们已经死了。close()
不会杀死任何进程,它只是关闭一个管道,通知该管道的读者,不会有更多数据通过它。
推荐阅读
- qt - 避免 QML 错误:“这可能是一个信号处理程序,但没有目标信号与名称匹配。”
- node.js - VS Code - 从 node.js 项目生成 UML
- node.js - 使用 NodeJS 在 Cloud Functions 中编写 Cloud Monitoring 指标
- r - 如何制作一个 ggplot2 条形图,显示我的数据框列中的一和二的数量?
- c# - 与 c# 的 ASPX 连接
- python - 需要帮助理解 sorted(x for x in os.listdir(path)) 表达式
- reactjs - 如何在 Gitlab CI 期间替换公用文件夹?
- amazon-web-services - 无法获取 TableName 无服务器框架:参数中缺少必需的键 'TableName'
- c# - 如何从异步方法更改 UI 元素属性的值?
- java - 为什么 Collection.equals() JavaDoc 说不能正确实现 List 和 Set?