gpt4 book ai didi

python - 如何对这两个嵌套循环进行多线程处理?

转载 作者:太空宇宙 更新时间:2023-11-04 04:26:15 25 4
gpt4 key购买 nike

我有两个循环遍历不同的列表。我如何编写一个多线程 python 程序,使得外循环的每个元素的内循环的所有迭代都发生在不同的线程中?例如,我们有以下两个列表:

A = [1,2,3]
B = [4,5,6]
C = []
for i in A:
for j in B:
C.append(i+j)

在这里,我们总共有九次迭代。每次第一个迭代器在 A 的一个元素上时,另一个迭代器迭代 B 的所有元素。并且,此操作重复三次。我想知道如何将这三个操作放在三个单独的线程中。

最佳答案

我建议使用 Numba 的 prange 来完成这类任务。 http://numba.pydata.org/

由于 GIL,Vanilla CPython 不能很好地处理并行处理。

import numba

@numba.njit(parallel=True)
def work():
A = [1,2,3]
B = [4,5,6]
X = [[0 for x in range(0)] for _ in A]
for idx in numba.prange(len(A)):
i = A[idx]
for j in B:
X[idx].append(i+j)
C = [0 for x in range(0)]
for x in X:
C = C + x
print(C)

work()

关于python - 如何对这两个嵌套循环进行多线程处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53456965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com