Как записать результаты выполнения функций в потоках в массив?
Нашел код который демонстрирует работу многопоточности в python 3. Я хочу сделать чтобы в каждом потоке выполнилась моя функция и после завершения работы всех потоков я получил массив с результатами всех потоков
import queue
import threading
import time
# The queue for tasks
q = queue.Queue()
# Worker, handles each task
def worker():
while True:
item = q.get()
if item is None:
break
#здесь должна выполниться моя функция я записать результат в массив
result = subprocess.run(['command', 'arg1', 'arg2'], stdout=subprocess.PIPE)
q.task_done()
def start_workers(worker_pool=1000):
threads = []
for i in range(worker_pool):
t = threading.Thread(target=worker)
t.start()
threads.append(t)
return threads
def stop_workers(threads):
# stop workers
for i in threads:
q.put(None)
for t in threads:
t.join()
def create_queue(task_items):
for item in task_items:
q.put(item)
if __name__ == "__main__":
# Dummy tasks
tasks = [item for item in range(10)]
# Start up your workers
workers = start_workers(worker_pool=10)
create_queue(tasks)
# Blocks until all tasks are complete
result = q.join()
print(result)
result2 = worker.join()
print(result2)
stop_workers(workers)