@acc770

Как прикрутить потоки к python скрипту через модуль threading?

Есть список элементов. Каждый элемент списка по очереди передается в функцию, которая проводит некую работу и возвращает другой список. Все списки, которые возвращает функция сохраняются в один общий. Как реализовать это с помощью потоков? Например, пяти.

from time import sleep
from datetime import datetime
import threading


list_numbers = list(range(100))


def f(elem):
    r = [elem * n for n in range(10)]
    sleep(0.5)
    return r


def main():
    start = datetime.now()
    result = []

    for n in list_numbers:
        r = f(n)
        result += r

    print(len(result))
    print(datetime.now() - start)


if __name__ == '__main__':
    main()
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Многопоточность
Седой и строгий
with ThreadPoolExecutor(max_workers=5) as executor:
    result = itertools.chain.from_iterable(executor.map(f, list_numbers, 5))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы