gpt4 book ai didi

python - 如何在Python中并行化2个循环

转载 作者:行者123 更新时间:2023-12-01 03:39:43 25 4
gpt4 key购买 nike

我需要在不同的线程中进行每次迭代(对于这两个循环中的每一个)。

var = 5
a = -7
b = 7
for i in range(var):
for j in range(a, b):
print(i, " ", j)

我怎样才能做到?

更新:

var = 5
a = -7
b = 7
max = 0
for i in range(var):
for j in range(a, b):
print(i, " ", j)
if i+j>max:
max=i+j
print(max)

最佳答案

您不能在不同的线程中运行这两个循环,因为第二个循环依赖于第一个循环中生成的数据。

一种方法是在不同的线程中运行第一个循环的每次迭代,如下所示:

from threading import Thread
var = 5
a = -7
b = 7

def inner_loop(i):
for j in range(a, b):
print(i, " ", j)

for i in range(var):
Thread(target=inner_loop, args=[i]).start()

另一种方式是生产者消费者模式。第一个循环生成 i 值并将其添加到队列中,第二个循环从队列读取值并生成 j 并打印 ij 像这样:

from threading import Thread

var = 5
a = -7
b = 7

queue = []
finished = False

def inner_loop():
while not finished or len(queue) > 0:
if len(queue) == 0:
continue
i = queue.pop()
for j in range(a, b):
print(i, " ", j)

def first_loop():
for i in range(var):
queue.append(i)
finished = True

Thread(target=inner_loop).start()
Thread(target=first_loop).start()

关于python - 如何在Python中并行化2个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39807026/

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