@PtrGrd

Что предпочтительнее — многопоточность или параллелизм (Python)?

Какой подход к написанию проекта более предпочтительней - параллельный или многопоточный в контексте Python-а?Асинхронный, сразу же скажу, не подходит, хотя не против, если бы меня кто-то исправил в этом плане - задача рассчитана больше на обработку процессором, чем на ввод-вывод. Что собственно говоря представляет собой задача? Пишу на Python проект, который выгружает данные, все упирается в несколько десятков тысяч запросов за 5-6 часов. Я больше склоняюсь к параллельному способу, чем к многопоточному (привет, GIL). Мне нужен совет специалиста, имеющего в этом опыт. Правильно ли я здесь определил для себя способ реализации задачи или все таки промахнулся с этим? Заранее благодарю

Библиотеки:
Multiprocessing
Threading
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
asyncio имеет удобный механизм асинхронного запуска задачи в отдельном процессе через run_in_executor(), так что это не такой уж жесткий выбор.

Многопроцессность быстрее, но есть проблемы с передачей сложный объектов. По сути, можно отдавать туда и обратно только примитивы, словари и списки. Вещи типа массивов numpy приходится конвертировать.
Так что если это не проблема - multiprocessing рулит.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы