用并行法代替顺序循环 [英] Using parallel method instead of sequential loop

查看:20
本文介绍了用并行法代替顺序循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码中已经使用了循环,我想用多线程替换循环,但不能理解如何做。下面是代码。

def run_test_function(arg1,arg2, arg3, arg4, arg5):
   try:
      #loop1
      for x in arg1:
         #loop2
         for y in arg2:
            #loop3
            for z in range(len(arg3)):
               #statements
            #statements
         #statements
   except Exception as e:
      print(e)
def main(argv):
   arg1 = value1
   arg2 = value2
   arg3 = value3
   arg4 = value4
   run_test_function(arg1, arg2, arg3, arg4)

我希望loop1的每一次迭代都应该像线程一样工作,这样我就可以用多线程取代loop。提前对您的帮助表示赞赏和感谢。:)

推荐答案

并行打印xy(如您在评论中所说):

from itertools import product
from multiprocessing import Pool


def run_test_function(arg1, arg2):
    with Pool(4) as pool:
        pool.starmap(print, product(arg1, arg2), 5)

if __name__ == '__main__':
    run_test_function([1,2,3,4,5], "abc")

输出:

~/test $ python so.py
1 a
1 b
1 c
2 a
2 b
2 c
3 a
3 b
3 c
4 a
4 b
4 c
5 a
5 b
5 c
6 a
6 b
6 c
7 a
7 b
7 c

这篇关于用并行法代替顺序循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆