【发布时间】:2021-05-28 08:21:21
【问题描述】:
我是多处理的新手,如果有人可以在这里指导/帮助我,我将不胜感激。我有以下 for 循环,它从两个函数中获取一些数据。代码是这样的
for a in accounts:
dl_users[a['Email']] = get_dl_users(a['Email'], adConn)
group_users[a['Email']] = get_group_users(a['Id'], adConn)
print(f"Users part of DL - {dl_users}")
print(f"Users part of groups - {group_users}")
adConn.unbind()
这可以正常工作并获得所有结果,但最近我注意到获取用户列表(即 dl_users 和 group_users)需要很长时间。大约需要 14-15 分钟才能完成。我正在寻找可以加快功能的方法,并希望将此 for 循环转换为多处理。 get_group_users 和 get_dl_users 调用 LDAP,所以我不能 100% 确定是否应该将其转换为多处理或多线程。任何建议都会有很大帮助
【问题讨论】:
-
请记住,多处理和多线程不是一回事。如果您需要计算大量 I/O 绑定任务,例如网络连接,则使用线程。对于 CPU 密集型任务,请使用多处理。
-
感谢您的回复,是的,我觉得在这里多处理是正确的方法,感谢您的解释
标签: python python-3.x python-multiprocessing python-multithreading