我用4个for循环实现了函数,并且计算时间很长,所以我试图通过使用多线程来加快速度。
我的功能如下:
task_five
在多线程中,我尝试了以下方法:
def loops(start, end):
for h in range(start, end):
for w in range(0, width):
for h2 in range(h-radius, h+radius):
for w2 in range(w-radius, w+radius):
compute_something()
如果我只使用0-300的主线程,则计算时间不会改变
我还使用了Joblib多重处理:
t1 = threading.Thread(target=loops, args=(0, 150))
t2 = threading.Thread(target=loops, args=(150, 300))
t1.start()
t2.start()
t1.join()
t2.join()
在这种情况下,计算时间甚至更长
我做错了什么,还是有其他方法通过多线程加速循环?
范围仅是一个示例,循环的大小通常为2000 * 1800 * 6 * 6,这需要+5分钟才能完成我正在做的事情