运行 与 Python 列表中的不同项目并行执行相同的功能

Run same function parallelly with different items in the list in Python

我有以下代码,我想使用多处理或线程或 Python 3.x 中的任何其他方法并行获取嵌套列表中每个列表的总和。我该如何处理?所有子列表或至少 2 个子列表应 运行 同时 addition 起作用。

提前致谢!

nested_list = [[2,3,4], [4,5,6], [7,8,9], [10,11,12]]

def addition(list):
  tot = sum(list)
  return tot

for list in nested_list:
  tot = addition(list)
  print (tot)

给一个女人或男人一条鱼,你可以喂她或他一天。教女人或男人钓鱼,你会养活他或她一辈子。

检查此 article。这很棒! 这个案例并不复杂,所以你在阅读和尝试 10-15 分钟后就可以解决这个问题和类似的问题了。

注意!在 CPU-bound 任务(例如您的任务)的情况下,您不想看向 multithreading。在这种情况下,在 Python 的情况下,只有 multiprocessing 会引入并行性。

祝你好运!

您不需要线程,因为您的任务是 CPU 绑定的。

from multiprocessing import Pool
 
with Pool(5) as p:
    print(p.map(addition, nested_list))

其他方式

import concurrent

with concurrent.futures.ProcessPoolExecutor() as executor:
     print(executor.map(addition, nested_list))

multiprocessing模块可用于基于进程的并行编程。

from multiprocessing import Pool

nested_list = [[2,3,4], [4,5,6], [7,8,9], [10,11,12]]
with Pool(5) as p:
    print(p.map(sum, nested_list))