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

Имеет ли многопоточность смысл в Python?

В статьях по Python по вопросу многопоточности (пример 1 и пример 2) упоминается, что из-за ограничений GIL (Global Interpreter Lock) исполнение многопоточного приложения в лучшем случае займет такое же количество времени, как и однопоточного, а на деле - дольше. В таком случае, имеет ли многопоточность хоть какой-нибудь смысл в Python?
  • Вопрос задан
  • 763 просмотра
Подписаться 2 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 1
sgjurano
@sgjurano
Разработчик
Конечно имеет :)
GIL мешает только параллельному использованию процессора в пределах одного процесса. Можно использовать треды для долгих IO операций, можно процессы для операций на CPU, они GIL неподвластны :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sly_tom_cat
@Sly_tom_cat
.
Сильно зависит от реализуемой задачи.

Для задач типа пользовательского интерфейса - одного потока вполне достаточно, для убыстрения обработки потока независимых запросов с высоким временем ожидания - можно смело писать многопоточные решения и даже с учетом GIL будет большой выигрыш.
А вот для математических обсчетов больших массивов данных - тут GIL хотелось бы отключить, потому что разбиение задачи на продпроцессы иногда съедает своими накладными ресурсами все бенефиты использования много ядерных процессоров.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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