使用并行方法而不是顺序循环

Using parallel method instead of sequential loop

我的代码中已经使用了循环,我想用多线程替换循环,但无法理解该怎么做。下面是代码。

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 的每次迭代都应该表现为一个线程,这样我就可以用多线程替换循环。感谢并提前感谢您的帮助。 :)

要并行打印 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