我有以下代码片段:
for x in xrange(100,14000):
for y in xrange(0,3000):
for z in xrange(0,700):
operationg_tag = "%s-%s-%s" % (x,y,z)
operation_code = ....
and more bunch of code is running here on the tag generated above我在一个快速、好的硬件中运行这段代码,但是这些循环的本质是缓慢的,因为在多处理/多重处理中没有运行
在每个标记上执行所需的代码大约需要0.4秒。
如何在这些嵌套循环中实现多重处理/多重处理,使其运行得更快?我应该瞄准哪一个回路?
发布于 2018-05-24 15:16:17
中断第一个循环就像3个进程,
def func(start, final):
for x in xrange(start, final):
for y in xrange(0,3000):
for z in xrange(0,700):
operationg_tag = "%s-%s-%s" % (x,y,z)
operation_code = ....
def main():
total = 14000
div_total = int(14000 / 3)
rest_div_total = 14000%3
t1 = multiprocessing.Process(target = func,name = "", args=(100, div_total)
t2 = multiprocessing.Process(target = func,name = "", args=(div_total, div_total*2)
t3 = multiprocessing.Process(target = func,name = "", args=(div_total*2, div_total*3 + rest_div_total + 1)
list_threads = [t1,t2,t3]
for i in list_threads:
i.start()
for i in list_threads:
i.join()
if __name__ == "__main__":
main()如果你愿意的话,你可以创建更多的过程,但是第三,这是一个很好的方法。
https://stackoverflow.com/questions/50512520
复制相似问题