Был интересный вопрос в комментах: "А нужно ли импортировать asyncio и делать событийный цикл для бота(aiogram, discord.py)? Ответ: Нет, событийный цикл запускается самим фреймворком при запуске bot.run() или start_polling() или start_webhook и тд. Вы пользуетесь декораторами уже готовых корутин из фреймворка, внедряя в них желаемое вам поведение (async функций под декораторами). Если есть дополнительные функции, то вы их записываете через синтаксис async await, как показано в конце видео, и запускаете из корутин под декораторами, как показано в конце видео.
А я всё видео ждал что сейчас узнаю как же мне одновременно запустить bot.polling() дважды или вместе с schedule.run_pending() Столкнулся с этой проблемой и ломаю голову три дня.
@musicdoriankon2632 Значит рано, эту терминологию следовало посмотреть или до этого видео или во время, если решили его посмотреть не понимая зачем это видео Вам.
Бро, спасибо! Я поражен, как легко и доступно у тебя получилось объяснить такую сложную тему. Посмотрел видео и с первого раза всё стало понятно. А препод нам месяцами объяснял эту тему и нифига было не понятно, только запутал нас ещё больше 😁 Буду рекомендовать канал.
Тяжело переоценить работу этого человека! Каждое видео это золото в песке. Я конечно не сторонник изучать язык и его инструменты по обучающим видео, но христоматийный 7ч видос в своё время часто меня выручал. Не знаю как у Вас это получается, но каждый раз когда я сталкиваюсь с проблемой в коде, и решаю проверить Ваш канал на наличие ответов Вы как будто знаете прядок трудностей с которыми столкнётся человек и по порядку все излагаете и даёте ответ. Я ещё не погружался в тему асинхронности и мультипроцессорности, многопоточности, но уверен, после просмотра видео эта тему у меня будет отличный стартовый капитал! :)
Информативно научнопопулярно доходчиво живым языком со всеми ньюансами самое главное наглядно прямо на мониторе объясняет.. Лучше любого профессора и академика.. Ждём новых видосов
Четко обьяснил,я аж загорелся желанием код переделать под асинхронные функции, но концовка убила, то что нужны отдельные либы это такой костыльный костыль, лучше давайте вынесем мозги разработчикам языка чтобы они сделали разблокировку тнтерпретатора для многопотока 😅
Очень достойно! Спасибо! Чёт сидел залипал на других роликах, думал уже поспать лечь, не заходит тема. Видимо вопрос в подаче материала. Замечательно прояснилось! Отдельное спасибо за пример диспетчером задач и процессами, без этого чувствуется какой то пробел)
Большое спасибо за видео! Очень много читал про потоки и асинхронность, но не мог выявить общего понимания, чтобы делать конкурентоспособный код!. Благодаря Вам, сформировалась общая картина!
Это лучшее объяснения асинхонности, которое я встречал. Так легко погрузился в эту тему, так еще и дополнительно разобрали мультипроцессинг и многопоточность. Большая благодарность вам. Всех благ!
В натуре классно Чётко Красавчик! Я давно искал решение для этого проблему случайно посмотрел на канале и нашёл ролик! спасибо большое! продолжай пожалуйста в тот же самый дух.
00:00 синхронный код на примере print() 02:14 синхронный код на примере окошка 06:03 import multiprocessing 08:14 from threading import Thread 13:01 (13:50) итераторы 24:16 (28:34 await, 29:49 gather) asyncio.create_task() 30:18 (31:01 for) asyncio.TaskGroup() 34:46 состояние гонки 35:44 (37:25) асинхронные библиотеки 37:50 пример для дискорд...
Спасибо тебе большое, я понимаю асинхронность, как она реализовывается на других языках, но в Python из-за GIL было сложно понять как на практике реализовать код, спасибо ещё раз за такой хороший урок.
Огромная благодарность!!! Очень доступно и понятно! (смотрел другие видео, было тяжко) 27:43 "при помощи этого кода мы их преподготовили" Мне кажется, как описано в функции create_task - мы оформляем задачу и помещаем в расписание. Иначе говоря этот код запустит все задачи ПОСЛЕ выполнения основного кода. Т.е. await task в данном случае не нужен. (обычно он нужен если нужно взять результат выполнения задач и обработать). Вероятно, на это так же указывает следующий код с TaskGroup где нет await-ов Еще как я понял(благодаря этому видео в частности), асинхронность заканчивается тогда, когда встречается await. Смысл асинхронности в том, чтобы НЕ ждать, а await - заставляет именно ЖДАТЬ. При этом реальная асинхронность может быть использована либо во внешней асинхронной функции через оформление в задачу, либо внутри функции оформление в задачу и await ставим на задачу, а не на функцию.
огромнейшее спасибо, изначально учил по Олегу Молчанову, но застрял на генераторах. У вас понял для чего они нужны и как используются с первого примера.
Начиная с 27:55 у многих может создаться впечатление, что await запускает таски, хотя они уже могут работать, а не быть "преподготовлеными" (на самом деле они запланированы на запуск в цикле событий).
уважаемый бро, твоё видео оказалось самым понятным из всех материалов представленных на ютюбе. моё уважение. в результате у меня получился замечательный конспект и я отлично понял основные конструкции, спасибо тебе. осталось немного непонятным в трек-тайме 32:24 (что именно стоит использовать таски, функцию_гетхер, или конструкцию async with as ) как я понял все будет зависеть от самого скрипта , мне очень понравилась gether ) очень жаль что нельзя добавить скрин с конспектом , хороший получился . так же интересуюсь за библиотеку aiohttp хотелось бы разобрать и ее.
👍 Что использовать?: не имеет значения, последнее - новый способ в python 3.11, просто более лаконичный. Может быть есть какая-то оптимизация дополнительная, но вряд-ли, я в документах ее не увидел или пропустил.
35:40 "В асинхронном подходе такой проблемы нет" - почему? Если Вы будете использовать глобальные структуры данных, то естественно race conditions там и останутся. Мало того, они останутся и в случае "мультипроцессового" исполнения. Вопрос, какой объект Вы собираетесь менять. Если просто передаются значения параметра в виде неизменяемых объектов, то никакого race condition не будет ни в каком из вариантов. Правильно? Вы ведь сами на 39:35 об этом рассказали - как достигается отсутствие коллизий: запускается отдельная нить исполнения процедур для каждого клиента. И даже если будет подразумеваться какая-то запись результатов, при которой возможны коллизии, то они уже будут обрабатываться асинхронными библиотеками, а не вручную пользователем.
Был интересный вопрос в комментах:
"А нужно ли импортировать asyncio и делать событийный цикл для бота(aiogram, discord.py)?
Ответ:
Нет, событийный цикл запускается самим фреймворком при запуске
bot.run() или
start_polling() или
start_webhook и тд.
Вы пользуетесь декораторами уже готовых корутин из фреймворка, внедряя в них желаемое вам поведение (async функций под декораторами). Если есть дополнительные функции, то вы их записываете через синтаксис async await, как показано в конце видео, и запускаете из корутин под декораторами, как показано в конце видео.
ты молодец.Единственный в ру сегменте кто СМОГ.
Telebot ( Pytelegrambotapi) асинхронный
@@attrebuttonСинхронный и Асинхроный
aiogram только асинхроный
А я всё видео ждал что сейчас узнаю как же мне одновременно запустить bot.polling() дважды или вместе с schedule.run_pending()
Столкнулся с этой проблемой и ломаю голову три дня.
чекни apscheduler как-то так вроде
@@Мамулечка-ф7ц
единственный нормальный человек который адекватно объясняет ассинхронность! респект
А как по мне, так ничего не понятно
@musicdoriankon2632
Значит рано, эту терминологию следовало посмотреть или до этого видео или во время, если решили его посмотреть не понимая зачем это видео Вам.
Лучший учитель по Python на ютубе
Спасибо! Закрыли пробелы по знаниям об ассинхронности.
Искал медь, нашел золото. Отличный ролик
Бро, спасибо! Я поражен, как легко и доступно у тебя получилось объяснить такую сложную тему.
Посмотрел видео и с первого раза всё стало понятно.
А препод нам месяцами объяснял эту тему и нифига было не понятно, только запутал нас ещё больше 😁
Буду рекомендовать канал.
Тяжело переоценить работу этого человека!
Каждое видео это золото в песке. Я конечно не сторонник изучать язык и его инструменты по обучающим видео, но христоматийный 7ч видос в своё время часто меня выручал. Не знаю как у Вас это получается, но каждый раз когда я сталкиваюсь с проблемой в коде, и решаю проверить Ваш канал на наличие ответов Вы как будто знаете прядок трудностей с которыми столкнётся человек и по порядку все излагаете и даёте ответ. Я ещё не погружался в тему асинхронности и мультипроцессорности, многопоточности, но уверен, после просмотра видео эта тему у меня будет отличный стартовый капитал! :)
Недавно на тебя наткнулся чтоб задачу решить, решил и столько интересного на канале нашел! Не бросай учить - очень понятно и круто объясняешь ✊
Мужик, хочу сказать спасибо, за то что не разжёвываешь так, как будто я первый раз python увидел! Спасибо от всего сердца!!! Этого многим не хватает
Чувак - ты лучший. Объяснил лучше всех
Информативно научнопопулярно доходчиво живым языком со всеми ньюансами самое главное наглядно прямо на мониторе объясняет.. Лучше любого профессора и академика.. Ждём новых видосов
Четко обьяснил,я аж загорелся желанием код переделать под асинхронные функции, но концовка убила, то что нужны отдельные либы это такой костыльный костыль, лучше давайте вынесем мозги разработчикам языка чтобы они сделали разблокировку тнтерпретатора для многопотока 😅
Супер!!! Долго искал подобное видео, но ничего толкового найти не мог. Здесь же всё ясно и понятно СРАЗУ. Спасибо за урок 🔥
👍
Только ночью изучал вопрос )
Гляну ваше видео обязательно !
Спасибо ! Наконец-то доходчивое объяснение на аддекватных примерах!!!!
Очень достойно! Спасибо! Чёт сидел залипал на других роликах, думал уже поспать лечь, не заходит тема. Видимо вопрос в подаче материала. Замечательно прояснилось! Отдельное спасибо за пример диспетчером задач и процессами, без этого чувствуется какой то пробел)
Большое спасибо за видео! Очень много читал про потоки и асинхронность, но не мог выявить общего понимания, чтобы делать конкурентоспособный код!. Благодаря Вам, сформировалась общая картина!
Смамое шикарное объяснение этой темы, которое только встречал! Просто шикарно, нет слов, больше вам спасибо!
Это лучшее объяснения асинхонности, которое я встречал. Так легко погрузился в эту тему, так еще и дополнительно разобрали мультипроцессинг и многопоточность. Большая благодарность вам. Всех благ!
Жаль, что нельзя поставить 100 лайков! Огромное Вам спасибо за ваши труды!!!
Спасибо за энциклопедийное видео без воды! Даже спустя года оно не потеряет актуальности.
Благодарность автору видео 👍👍👍
спасибо вам за обьяснение!! Благодаря вам понял асихронность в программировании
Ещё один годный ролик, харош. Твой видос про ООП запостили в паблике по питону. Признание
В натуре классно Чётко Красавчик! Я давно искал решение для этого проблему случайно посмотрел на канале и нашёл ролик! спасибо большое! продолжай пожалуйста в тот же самый дух.
Благодарю за информативное видео! Буквально недавно стал интересоваться этой темой. Удачи вам
очень крутой учитель, нет слов, респекты!
Просто идеальное видео)) спасибо. Тот же GPT отвечая на эти вопросы нес непонятную хню, а тут все четко и с доступными примерами
00:00 синхронный код на примере print()
02:14 синхронный код на примере окошка
06:03 import multiprocessing
08:14 from threading import Thread
13:01 (13:50) итераторы
24:16 (28:34 await, 29:49 gather) asyncio.create_task()
30:18 (31:01 for) asyncio.TaskGroup()
34:46 состояние гонки
35:44 (37:25) асинхронные библиотеки
37:50 пример для дискорд...
Очень классное видео, где на примере просто и понятно объясняют асинхронку.👍
Огромное спасибо за видео.
По крайней мере пока что, это самое информативное и максимальное понятное видео, что я смог найти на TH-cam.
как же долго я искал такой годный контент
Спасибо большое за урок, много узнал нового, старые недопонятости закрыл. Спасибо большое)
спасибо, очень понятное объяснение, в отличие от некоторых курсов, которые я проходил
Хорош, никогда не видел такого расстягивания хронометража!
Спасибо Вам большое. Только после просмотра Вашего видео вся та информация, прочтенная в книгах стала понятно. Ещё раз, большое спасибо Вам
Спасибо тебе большое, я понимаю асинхронность, как она реализовывается на других языках, но в Python из-за GIL было сложно понять как на практике реализовать код, спасибо ещё раз за такой хороший урок.
так понятно объяснять это талант)
лайк, подписка за труд
Отличное видео. Исчезли все вопросы по этим темам. 10/10
Огромное спасибо! Просто шикарно!!! И исчерпывающе!!!
Интересный, полезный, с приятной подачей информации видос! Супер!
Спасибо за доходчивые объяснения!
спасибо. очень полезное видео! помогло разобраться в асинхронности
Спасибо, вы большой молодец, что делаете такой труд для нас !
Как всегда - донесение информации на высшем уровне!
Низкий поклон за то как разжевана вся информация . Все пошагово, на понятных примерах, все взаимосвязи данной данной темы учтены. СУПЕР.
Как повезло с этим видео. Объяснил очень просто, без заумных фраз. Огромное спасибище!
Вау, как раз сегодня с утра сел за эту тему. Как неожиданно и приятно
Дружище, наткнулся на твой канал, ты же просто находка!! Давай видос про Js и иже с ним. Аудитории зайдёт на все 100!
Огромная благодарность!!! Очень доступно и понятно! (смотрел другие видео, было тяжко) 27:43 "при помощи этого кода мы их преподготовили" Мне кажется, как описано в функции create_task - мы оформляем задачу и помещаем в расписание. Иначе говоря этот код запустит все задачи ПОСЛЕ выполнения основного кода. Т.е. await task в данном случае не нужен. (обычно он нужен если нужно взять результат выполнения задач и обработать). Вероятно, на это так же указывает следующий код с TaskGroup где нет await-ов
Еще как я понял(благодаря этому видео в частности), асинхронность заканчивается тогда, когда встречается await. Смысл асинхронности в том, чтобы НЕ ждать, а await - заставляет именно ЖДАТЬ. При этом реальная асинхронность может быть использована либо во внешней асинхронной функции через оформление в задачу, либо внутри функции оформление в задачу и await ставим на задачу, а не на функцию.
Изучил джарго по вашим видосам, понял что надо знать многопоточность и асинхронность, опа, а тут имеется
Спасибо. Объяснил как маленькому малышу Асинхронность !🥰
Благодарю! Очень интересно и доступно для понимания.
Ух сложно сказал бы я, но стало понятно как теперь всё это работает. Спасибо за разъяснения!
Максимально полезный видос👍
в тебе найкращі відео з програмування. Зроби будь ласка відео по асинхронній sqlite
Записал небольшой конспект, все понятно. Спасибо
Спасибо огромное! Очень доступно, на примерах, интересно
Спасибо за очень информативный ролик!
Так емко и доходчиво, шикарная подача информации, спасибо!!)
Привет. Для обучения очень крутой канал. Спасибо тебе!
Без воды - спасибо
Отличный урок.
огромное вам спасибо за обучение
Спасибо, это лучшее объяснение разницы всех этих понятий.
Спасибо за видео! Если будет желание, то выпусти, пожалуйста, видео по веб приложениям внутри телеграм. Было бы очень интересно об этом узнать!
Мне нравятся твой канал и твои видео. Продолжай, бро
Спасибо дружише ! очень понятно объяснил!
Божественно!
огромнейшее спасибо, изначально учил по Олегу Молчанову, но застрял на генераторах. У вас понял для чего они нужны и как используются с первого примера.
Класс. благодарю, хороший человек
Спасибо, очень хорошо объяснил, хорошее видео получилось
Спасибо, дядь, контент что надо))
Очень круто , спасибо за видео
Спасибо, очень круто объяснено!
Вот это мы смотрим. Спасибо
Спасибо за отличный урок
Большое спасибо за Ваш труд. Всегда жду выхода ваших новых видео.
Подскажите, у вас есть ещё какие либо каналы, группы, чаты?
Вау, дякую за інфу
Це підписка/лайк
ЛУЧШИЙ!
Начиная с 27:55 у многих может создаться впечатление, что await запускает таски, хотя они уже могут работать, а не быть "преподготовлеными" (на самом деле они запланированы на запуск в цикле событий).
на 2:00 лайк, сразу понятно, что будет понятно))
Вообще топ, продолжай в том же духе
спасибо мужик все понятно обьяснил
Замечательное видео!
Спасибо, однозначно лайк, отлично объяснил)
Лучшее русскоязычное объяснение, спасибо вам.
Безмерная благодарность
Шикарно!
Спасибо за контент
Смотришь как на Py реализуется асинхронность и слезы наворачиваются после многолетней работы в JS))
🤣🤣🤣
уважаемый бро, твоё видео оказалось самым понятным из всех материалов представленных на ютюбе. моё уважение. в результате у меня получился замечательный конспект и я отлично понял основные конструкции, спасибо тебе.
осталось немного непонятным в трек-тайме 32:24 (что именно стоит использовать таски, функцию_гетхер, или конструкцию async with as ) как я понял все будет зависеть от самого скрипта , мне очень понравилась gether )
очень жаль что нельзя добавить скрин с конспектом , хороший получился . так же интересуюсь за библиотеку aiohttp хотелось бы разобрать и ее.
👍 Что использовать?: не имеет значения, последнее - новый способ в python 3.11, просто более лаконичный. Может быть есть какая-то оптимизация дополнительная, но вряд-ли, я в документах ее не увидел или пропустил.
Спасибо! Ты можешь преподносить информацию понятно.
спасибо большое за видео
38:14 Это разве не потенциалльное место для sql инъекции ?
Спасибо большое! Очень доступное объяснение.
О, супер!
35:40 "В асинхронном подходе такой проблемы нет" - почему?
Если Вы будете использовать глобальные структуры данных, то естественно race conditions там и останутся. Мало того, они останутся и в случае "мультипроцессового" исполнения. Вопрос, какой объект Вы собираетесь менять. Если просто передаются значения параметра в виде неизменяемых объектов, то никакого race condition не будет ни в каком из вариантов. Правильно?
Вы ведь сами на 39:35 об этом рассказали - как достигается отсутствие коллизий: запускается отдельная нить исполнения процедур для каждого клиента. И даже если будет подразумеваться какая-то запись результатов, при которой возможны коллизии, то они уже будут обрабатываться асинхронными библиотеками, а не вручную пользователем.
Супер👍 Как всегда, объясняет все очень круто. А где можно почитать как примерно работает async await под капотом?
Как всегда топ, если возможно, то хотел бы попросить небольшой урок по PHP в html