Я хотел бы выполнить пакетную обработку для моего большого набора данных.Я хочу запустить n
thread параллельно для обработки каждой партии n
выборок данных.Вот симуляция с простой функцией:
from threading import Thread
import queue
def funct(i, a, b, out_que):
res = {}
res[i] = a+b
out_que.put(res)
# I try to run 3 threads in parallel, 5 times
res_list = []
for i in range(5):
threads = []
res_queue = queue.Queue()
for j in range(3):
thread = Thread(target=funct, args=(j, 5, 6, res_queue))
thread.start()
threads.append(thread)
for thread in threads:
thread.join()
resulted = res_queue.get()
res_list.append(resulted)
print(res_list)
Я хочу получить следующий результат:
[{0: 11}, {1: 11}, {2: 11}, {3: 11}, {4: 11}, {5: 11}, {6: 11}, {7: 11}, {8: 11}, {9: 11}, {10: 11}, {11: 11}, {12: 11}, {13: 11}, {14: 11}]
Но я получил это:
[{0: 11}, {0: 11}, {0: 11}, {0: 11}, {0: 11}]