Задать вопрос
@AlexBoss

Что работает быстрее 10 потоков в 10 процессах или отдельные 100 потоков?

Добрый день. Тестируют многопоточность и мультипроцессинг. Возник вопрос: что работает быстрее 10 потоков в 10 процессах или отдельные 100 потоков? По поводу потребления ресурсов, 10 процессов затратнее, понимаю. А вот что по поводу скорости?
  • Вопрос задан
  • 697 просмотров
Подписаться 2 Простой 10 комментариев
Пригласить эксперта
Ответы на вопрос 2
@asd111
Между потоками и процессам маленькая разница на уровне ОС.
У процессов изолированная память, а потоки разделяют общую память внутри процесса.
И это по сути вся разница.
В плане производительности большая разница между потоками(процессами) и корутинами. Можно запустить 100_000 корутин и все будет работать, а 100_000 потоков скорее всего упадут с Out of memory.
Ответ написан
Комментировать
vpuhoff
@vpuhoff
Программист в свободное от работы время
Все зависит от того как долго будет подниматься контекст потока\процесса и как долго каждый будет ждать выполнения задачи. Грубо говоря если каждый поток делает запрос к сайту и ответ получает за 20мс то профита от процессов не будет, если же каждый будет загружать данные секунд 10 и после их обрабатывать то профит может быть значительным.
Если по задаче не ясно будет ли профит можно воспользоваться
https://joblib.readthedocs.io/en/latest/generated/...
и попробовать в каждом из режимов (в этой библиотеке режим меняется простым изменением настройки)
Так же стоит посмотреть в сторону celery, возможно это даст больший контроль над процессом.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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