@prochanev

Потоки в python, для чего?

Добрый день, друзья!
Никак не могу разобраться для чего применяются потоки в python, с учетом того, что есть GIL. все примеры в интернете основаны на запуске таймера в потоках. Что вообще не дает понимания вопроса. Т.е. зачем это может понадобиться.
Если для операций IO, то есть ведь asycio.

Есть ли хорошая статья на эту тему, где было бы описано реальное применение потоков, с описанием причины их применения?

Может быть есть книга, где объясняются реальные кейсы применения?
  • Вопрос задан
  • 498 просмотров
Решения вопроса 3
DevMan
@DevMan
вопрос потоков не имеет ничего общего конкретно с питоном. это вообще из программирования как такового.
их назначение – распараллеливание операций, когда это имеет смысл.

простой пример – архиватор, файловый менеджер, утилита для нагрузочного тестирования.
Ответ написан
total4c
@total4c
Говнокодер
Могу объяснить на практике, для чего они нужны.

Допустим, вам необходимо скачать несколько файлов с сайта. Если делать это обычным методом, то они будут скачиваться по-очереди, т.е 1 -> 2 -> 3 и т.д. Но с помощью потоков можно распараллелить этот процесс
См. пример ниже:

from threading import Thread
url = ["https://test.com/23123", "https://test.com/2343" ...]

def download(url):
     file = requests.get(url)
     with open("photo.jpg", "wb") as f:
            f.write(file.content)

for i in url:
     Thread(target=download, args=(i,)).start()
Ответ написан
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Если для операций IO, то есть ведь asycio.

Не всё можно сделать асинхронным. Например файловый ввод/вывод в Windows без блокировок можно осуществлять только в потоках.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@LikeKey
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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