Очень хорошо, хотелось бы больше практических примеров, чтобы выглядело естественно, а также ссылочки на какие-нибудь статьи или книги, где хорошо описана тема из урока. Спасибо за него, успехов.
7:10 на мой взгляд, удобнее вызывать через threading.Thread(target=lambda *_: get_data("b", time.time)).start(), потому что не приходится возиться с именованным параметром
Здравствуйте. Подскажите пожалуйста, как с помощью потока запустить выполнение асинхронной функции, внутри которой есть обращение к ещё одной асинхронной функции?
Подскажите пожалуйста , есть написанный скрипт, он каждый час парсит цены с одного магазина. и записывает в переменную в виде словаря, как сделать так что бы, если пользователь в телеграмме при выборе команды /мониторить ,скрипт каждый час проверял переменную и если по заданным настройкам есть данные то , пользователю присылать эти данные с словаря. У каждого пользователя свои настройки по товарам. Использую aiogram Спасибо
@@zproger я прям ждал этого, если еще будет про асинхроность - что это такое, как это работает, и что делать если надо асинхронно, но внутри есть синхронные функции. Даже задоначу косарик, вообще не жалко
Большое количество ошибок в ролике, люди, которые впервые встречаются с многопоточностью в питоне будут иметь неправильное представление работы потоков, джоинов. Надо было как минимум объяснить почему если у нас есть GIL, то исполняя программы из видео многопоточность все-таки как будто существует, рассказать про то, что на самом деле делает функция time.sleep() и другие блокирующие поток функции.
Большое количество ошибок в ролике, поэтому ты не она дну не указал ? "Надо было как минимум объяснить почему если у нас есть GIL" - Кому надо было ? Клоун блять
Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.
У меня такой вопрос почему очень часто в перечисление аргументов функции ставиться запитая, как например: threading.Thread(target=get_data, args=(str(time.time()), i,), name = f"thr-{i}") почему после i запитая?
@@zproger Че, в случае если нужно в кортеже иметь один объект, то ставится запитая, но в случае двух и более нужны лишь разделяющие запятые, или я что то не понимаю? Пруф: a = (1,) b = (1) c = (1,2,) d = (1,2) print(f"a: {type(a)}", f'b: {type(b)}', f'c: {type(c)}', f"d: {type(d)}", sep=" ") output: a: b: c: d:
@@gordeytsy283 видимо из-за того что () также используются и в операциях вычисления. К примеру (3+3) * 9. А так, если там стоит запятая, то скобки уже воспринимаются как обьект кортеж
Вот этот фактор и отталкивает снимать сложные темы, они как правило никому не интересны, если даже сейчас с аудиторией в 110к подписчиков я сделаю к примеру какой-то бесплатный курс по асинхронности, то на видео будет по 800 просмотров, поэтому смысла от таких видео нет.
Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.
Про args вообще не понял, что это и зачем нужно. Upd. Возможно понял. Так как в target мы передаем объект функции, то в args мы передаем аргументы с которой нужно вызвать эту функцию, правильно?
@@zproger я видео не полностью смотрел, лень было)И этот код нужен что несколько циклов бесконечных не останавливали другие, так что смысл от этого есть
А еще, мил человек, я вот как опытный программист со стажем, освоивший лист компрехеншонсы, хотел бы узнать у вас, в чем разница между многопоточностью и асинхронностью и как они оба в плане секса? А? М? Спасибо, жду нового видео!
Всё хорошо, но было бы отлично если б была более четкая дикция...Много слов слышны только наполовину, так как они съедаются в попытке быстрее донести информацию. В итоге вместо того, чтоб на ходу переваривать услышанное, приходится перематывать назад и разбирать, что же вообще было за слово сказано: двойная работа, от которой быстро закипает мозг)) Лучше говори помедленнее, но чётко, а потом ускорь при обработке.
Создать поток, вызывающий функцию с print это понятно. А если мне нужно создать поток, который вызывает функцию, возвращающую результат, и с этим результатом потом работать.
на 8,56 видно что основной поток и созданный отдельно работают параллельно. Но у меня так не получается. Сначала новый после .start(), потом основной продолжает
Если я запустил программу, например по бесконечному пребавлению (1000+1+1+1...), и запустил второй экземпляр программы где я пребавляю (2000+1+1+1...), будет ли это считаться, что я запустил два потока?
Нет, потому что это два разных процесса. Сам же сказал, что это второй экземпляр программы, а потоки это, можно сказать, ветвления одной программы. Ну, я так понимаю.
Есть просьба излагать материал чуть медленнее. У вас очень быстрый говор. Я понимаю, когда человек владеет информацией, он может быстро излагать мысли. Но для того, кто впервые смотрит видео, приходится пересматривать по несколько раз, чтобы уловить и код и слова.
Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.
тяжело... смотрела на скорости 0.8 очень бы хотелось видеть вместо футажей в начале слайды, которые бы +- дублировали устный текст футажи отвлекают, а тема и так не простая
Вспомнил JS: потоки умеют нагружать CPU и спать , а асинхронность заставляет 1 ядро за все потоки работать. Так что не надо своих демонов пропагандировать, помню бота на сервак поставил с ними и он , после второго клиента, не проснулся...
Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.
Именно от количества лайков и комментариев я понимаю что нужно
продолжать делать видео. Не забывайте проявлять свою активность :)
Супер, спасибо за доходчивую подачу. Иду смотреть дальше
Круто =)
Как только начинаю искать новый материал, выходит твоё подходящее видео! Спасибо
Рад что получается угадывать нужный материал) Спасибо
Спасибо огромное, комментарий для продвижения!
Спасибо
Спасибо за уроки! Полезно, кратко и по фактам. Очень помогло.
*Очень полезно, спасибо.*
Благодарю :)
Привет
ооо , интересно , познавательно , лайк , подписка , колоколтчик
Спасибо :)
thanks
😎😎
Очень хорошо, хотелось бы больше практических примеров, чтобы выглядело естественно, а также ссылочки на какие-нибудь статьи или книги, где хорошо описана тема из урока.
Спасибо за него, успехов.
Благодарю
Хорошо, что прочёл твой комментарий до просмотра. Без примеров это видео для меня бесполезно.
Спасибо тебе чел🤗
Все понятно)
:)
7:10 на мой взгляд, удобнее вызывать через threading.Thread(target=lambda *_: get_data("b", time.time)).start(), потому что не приходится возиться с именованным параметром
его же можно вообще не указывать
Спасибо за урок, существует много книг по питон, но там мало освещяет эту тему
Согласен
спасибо за труд! посмотрел один раз, пока почти ничего не понял
Здравствуйте! Нихуя не понял, но очень интересно. Спасибо.
:)
Здравствуйте. Подскажите пожалуйста, как с помощью потока запустить выполнение асинхронной функции, внутри которой есть обращение к ещё одной асинхронной функции?
Почему на 14:30 выводится [thr-1], [thr-2], [thr-2]? Дважды выводится с номером 2, и где thr-0?
Подскажите пожалуйста , есть написанный скрипт, он каждый час парсит цены с одного магазина. и записывает в переменную в виде словаря, как сделать так что бы, если пользователь в телеграмме при выборе команды /мониторить ,скрипт каждый час проверял переменную и если по заданным настройкам есть данные то , пользователю присылать эти данные с словаря. У каждого пользователя свои настройки по товарам. Использую aiogram Спасибо
Хуе его знает
Это не совсем к теме ролика
Топчик
Благодарю :)
@@zproger я прям ждал этого, если еще будет про асинхроность - что это такое, как это работает, и что делать если надо асинхронно, но внутри есть синхронные функции. Даже задоначу косарик, вообще не жалко
после этого курса как раз планировался курс по асинхронности :)
@@zproger asyncio aiohttp aiostream 👍😁
Большое количество ошибок в ролике, люди, которые впервые встречаются с многопоточностью в питоне будут иметь неправильное представление работы потоков, джоинов. Надо было как минимум объяснить почему если у нас есть GIL, то исполняя программы из видео многопоточность все-таки как будто существует, рассказать про то, что на самом деле делает функция time.sleep() и другие блокирующие поток функции.
Большое количество ошибок в ролике, поэтому ты не она дну не указал ?
"Надо было как минимум объяснить почему если у нас есть GIL" - Кому надо было ? Клоун блять
Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.
У меня такой вопрос почему очень часто в перечисление аргументов функции ставиться запитая, как например:
threading.Thread(target=get_data, args=(str(time.time()), i,), name = f"thr-{i}")
почему после i запитая?
потому что в args передается кортеж
@@zproger Че, в случае если нужно в кортеже иметь один объект, то ставится запитая, но в случае двух и более нужны лишь разделяющие запятые, или я что то не понимаю?
Пруф:
a = (1,)
b = (1)
c = (1,2,)
d = (1,2)
print(f"a: {type(a)}", f'b: {type(b)}', f'c: {type(c)}', f"d: {type(d)}", sep="
")
output:
a:
b:
c:
d:
@@zproger обязательно кортеж? а список?
@@gpankov Thread args принимает итерабельные обьекты. Тобишь, и список и кортеж тут работают
@@gordeytsy283 видимо из-за того что () также используются и в операциях вычисления. К примеру (3+3) * 9. А так, если там стоит запятая, то скобки уже воспринимаются как обьект кортеж
Пушка
Почему так мало просмотров у таких более сложных тем? Людям что потоки не нужны😂
Вот этот фактор и отталкивает снимать сложные темы, они как правило никому не интересны, если даже сейчас с аудиторией в 110к подписчиков я сделаю к примеру какой-то бесплатный курс по асинхронности, то на видео будет по 800 просмотров, поэтому смысла от таких видео нет.
Я как новичок, честно ничего не понимаю, такое ощущение что ты делишься своими знаниями делишься со своими коллегами которые так же все это знают -_-
Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.
не подскажите где можно изучить асинхронность, а то я в нете ниче толкового не могу найти
Официальная документация, ну и кроме этого есть много статей
@@zproger эх, жаль что приходится по кускам собирать)
Про args вообще не понял, что это и зачем нужно.
Upd. Возможно понял. Так как в target мы передаем объект функции, то в args мы передаем аргументы с которой нужно вызвать эту функцию, правильно?
Да, все верно
без библиотек можно вот так:
while True:
a=1
while a==1:
a=0
print("test")
while a==0:
a=1
print("test1")
ничего сложного как по мне, только это не совсем многопоточность, а аналог этого
Мне показалось, или это отсылка к GIL?)
@@zproger я видео не полностью смотрел, лень было)И этот код нужен что несколько циклов бесконечных не останавливали другие, так что смысл от этого есть
Последний пример с поочередным выполнением потоков можно сделать с помощью асинхронности? Если да - то какая разница?
Асинхронность работает абсолютно по-другому, когда будет курс на эту тему я рассмотрю разницу
лучше использовать потоки из pyqt/pyside там больше контроля над потоками есть
Ну это лучше в Qt проекте, но в обычной cli программе это не уместно, кстати про сигналы также будет видео :)
А еще, мил человек, я вот как опытный программист со стажем, освоивший лист компрехеншонсы, хотел бы узнать у вас, в чем разница между многопоточностью и асинхронностью и как они оба в плане секса? А? М? Спасибо, жду нового видео!
:/
че ты такой язвительный? А? М? Спасибо, жду новый комментарий!
Всё хорошо, но было бы отлично если б была более четкая дикция...Много слов слышны только наполовину, так как они съедаются в попытке быстрее донести информацию. В итоге вместо того, чтоб на ходу переваривать услышанное, приходится перематывать назад и разбирать, что же вообще было за слово сказано: двойная работа, от которой быстро закипает мозг)) Лучше говори помедленнее, но чётко, а потом ускорь при обработке.
Создать поток, вызывающий функцию с print это понятно. А если мне нужно создать поток, который вызывает функцию, возвращающую результат, и с этим результатом потом работать.
Пришлось несколько раз пересматривать. С первого раз вообще ничего не понятно, очень сложно.
Ага, эта тема не всегда сразу воспринимается, нужно немного времени и попыток
как с потока ответ получить?
def __init__(self, group=None, target=None, name=None,
args=(), kwargs=None, *, daemon=None):
* - что это значит? можете ссылку кинуть где почитать?
на 8,56 видно что основной поток и созданный отдельно работают параллельно. Но у меня так не получается. Сначала новый после .start(), потом основной продолжает
Как создавать настраиваемое количество потоков просто задавая их количества ане экземпляр?
Если я запустил программу, например по бесконечному пребавлению (1000+1+1+1...), и запустил второй экземпляр программы где я пребавляю (2000+1+1+1...), будет ли это считаться, что я запустил два потока?
Нет, потому что это два разных процесса. Сам же сказал, что это второй экземпляр программы, а потоки это, можно сказать, ветвления одной программы.
Ну, я так понимаю.
Есть просьба излагать материал чуть медленнее. У вас очень быстрый говор. Я понимаю, когда человек владеет информацией, он может быстро излагать мысли. Но для того, кто впервые смотрит видео, приходится пересматривать по несколько раз, чтобы уловить и код и слова.
Shift+
Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.
тяжело... смотрела на скорости 0.8
очень бы хотелось видеть вместо футажей в начале слайды, которые бы +- дублировали устный текст
футажи отвлекают, а тема и так не простая
Спасибо, учту
@@zproger Спасибо вам за полезные видео!
Вспомнил JS: потоки умеют нагружать CPU и спать , а асинхронность заставляет 1 ядро за все потоки работать.
Так что не надо своих демонов пропагандировать, помню бота на сервак поставил с ними и он , после второго клиента, не проснулся...
Потоки это всего лишь инструмент и он применяется только по назначению, ту же асинхронность тоже далеко не везде будет правильно использовать
Потоки почему-то легко зашли и на питоне и на с++, а вот асинхронность разными способами я с трудом тяну. Странная хрень🤡
нихрена не поняла😂
Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.
Совсем простые примеры 😂😂😂 вы бля иждеваетесь
Разве нет?)
Мультипроцесність а не мультипроцесорність