【发布时间】:2021-07-06 09:19:08
【问题描述】:
我的第一个解决方案:
while True:
doLongProcess()
# other statements
exitCondition()
此解决方案运行速度非常慢。所以我尝试了以下解决方案:
flag = 0
while True:
if flag == 5:
doLongProcess()
flag = 0
# other statements
flag += 1
exitCondition()
而不是每次我将其设为 1:5 时都执行 doLongProcess()。
通过应用此解决方案,执行速度加快,但在“每个 doLongProcess()”处它都会减慢。
所以我的问题是,线程编程在这种情况下会帮助我吗?如果可以,可以指导一下吗?
编辑:doLongProcess() 正在处理图像。简而言之,
1.从本地存储加载图片
2.face_recognition 库将在该图像上找到人脸位置
3.如果找到人脸:将与之前的数据进行比较
4.返回结果
【问题讨论】:
-
取决于工作负载的类型。主要是 I/O 会,主要是 CPU 不会。
-
是长进程 I/O 受限还是 CPU 受限?
-
@ChrisDoyle 我已经编辑了问题。
-
听起来这将受 CPU 限制,因此您可能希望多处理而不是多线程
标签: python multiprocessing python-multiprocessing