首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python2.7中的多处理/多重3嵌套循环

问Python2.7中的多处理/多重3嵌套循环
EN

Stack Overflow用户
提问于 2018-05-24 15:00:21
回答 1查看 132关注 0票数 0

我有以下代码片段:

代码语言:javascript
复制
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秒。

如何在这些嵌套循环中实现多重处理/多重处理,使其运行得更快?我应该瞄准哪一个回路?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-24 15:16:17

中断第一个循环就像3个进程,

代码语言:javascript
复制
    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()

如果你愿意的话,你可以创建更多的过程,但是第三,这是一个很好的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50512520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档