Threading Python #1. Многопоточность в Python на простых примерах

preview_player
Показать описание

Разбираем процессы и потоки Python на простых примерах.
Вы узнаете чем отличаются процессы от потоков, в каких случаях стоит применять ту или иную технологию. Мы рассмотрим проблемы при работе с потоками, проблемы с синхронизацией и ресурсами.
Также закрепим полученный материал на практике и напишем программу с использованием потоков, попутно рассматривая все методы и атрибуты для работы с ними

Таймкоды:
00:00 - Что будет в данном видео?
0:44 - Процессы и потоки. Чем они отличаются
2:34 - Проблемы при использовании потоков
4:08 - Взаимоблокировки. Deadlock в потоках Python
4:52 - Рассматриваем потоки на практике
5:08 - Запускаем функцию в отдельном потоке и рассматриваем атрибуты
7:50 - Получить имя и прочие атрибуты запущенного потока
8:24 - Проверяем работоспособность потока вместе с MainThread
9:34 - Получить все запущенные потоки и проверить статус работы
10:25 - Разбираем структуру запущенных потоков
11:16 - Получить объект основного потока MainThread
11:35 - Задаем имя потока на лету
12:06 - Ждем выполнение потока. Используем Join
Рекомендации по теме
Комментарии
Автор

Именно от количества лайков и комментариев я понимаю что нужно
продолжать делать видео. Не забывайте проявлять свою активность :)

zproger
Автор

Спасибо за уроки! Полезно, кратко и по фактам. Очень помогло.

MrBrigadierArchived
Автор

Супер, спасибо за доходчивую подачу. Иду смотреть дальше

ArtemOriginativeAClub
Автор

Как только начинаю искать новый материал, выходит твоё подходящее видео! Спасибо

ukrmapper
Автор

Спасибо огромное, комментарий для продвижения!

Alikhan-xmxq
Автор

Здравствуйте! Нихуя не понял, но очень интересно. Спасибо.

flueriexeflueriexe
Автор

ооо, интересно, познавательно, лайк, подписка, колоколтчик

goshaposhlyy
Автор

Спасибо за урок, существует много книг по питон, но там мало освещяет эту тему

ertargn
Автор

спасибо за труд! посмотрел один раз, пока почти ничего не понял

vestzeud
Автор

Здравствуйте. Подскажите пожалуйста, как с помощью потока запустить выполнение асинхронной функции, внутри которой есть обращение к ещё одной асинхронной функции?

mnxiohd
Автор

Большое количество ошибок в ролике, люди, которые впервые встречаются с многопоточностью в питоне будут иметь неправильное представление работы потоков, джоинов. Надо было как минимум объяснить почему если у нас есть GIL, то исполняя программы из видео многопоточность все-таки как будто существует, рассказать про то, что на самом деле делает функция time.sleep() и другие блокирующие поток функции.

kirillstepankov
Автор

Подскажите пожалуйста, есть написанный скрипт, он каждый час парсит цены с одного магазина. и записывает в переменную в виде словаря, как сделать так что бы, если пользователь в телеграмме при выборе команды /мониторить, скрипт каждый час проверял переменную и если по заданным настройкам есть данные то, пользователю присылать эти данные с словаря. У каждого пользователя свои настройки по товарам. Использую aiogram Спасибо

worldtech
Автор

7:10 на мой взгляд, удобнее вызывать через *_: get_data("b", time.time)).start(), потому что не приходится возиться с именованным параметром

konstantinkolmogortsev
Автор

Очень хорошо, хотелось бы больше практических примеров, чтобы выглядело естественно, а также ссылочки на какие-нибудь статьи или книги, где хорошо описана тема из урока.
Спасибо за него, успехов.

domochevsky
Автор

на 8, 56 видно что основной поток и созданный отдельно работают параллельно. Но у меня так не получается. Сначала новый после .start(), потом основной продолжает

yxhlenc
Автор

У меня такой вопрос почему очень часто в перечисление аргументов функции ставиться запитая, как например:
threading.Thread(target=get_data, args=(str(time.time()), i, ), name = f"thr-{i}")
почему после i запитая?

georgeseletski
Автор

Если я запустил программу, например по бесконечному пребавлению (1000+1+1+1...), и запустил второй экземпляр программы где я пребавляю (2000+1+1+1...), будет ли это считаться, что я запустил два потока?

alexeyb
Автор

Почему на 14:30 выводится [thr-1], [thr-2], [thr-2]? Дважды выводится с номером 2, и где thr-0?

dmitriynayanov
Автор

def __init__(self, group=None, target=None, name=None,
args=(), kwargs=None, *, daemon=None):
* - что это значит? можете ссылку кинуть где почитать?

qtccpld
Автор

не подскажите где можно изучить асинхронность, а то я в нете ниче толкового не могу найти

hopelesssuprem