1. Введение в асинхронное программирование

Поделиться
HTML-код
  • Опубликовано: 13 сен 2024
  • Основные понятия асинхронного программирования на Python 3.

Комментарии • 38

  • @doc736
    @doc736 6 лет назад +17

    Божечки мои, почему мне раньше было всё это непонятно?
    Огромное спасибо!

    • @АртемЮдін
      @АртемЮдін 3 года назад

      да, очень доступно исполнено.

  • @breuslife
    @breuslife 4 года назад +12

    Всё проще чем я думал. Шикарное видео. Благодарю!

  • @4r4zzz
    @4r4zzz Год назад +1

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

  • @vlad_covers
    @vlad_covers 5 лет назад +9

    Да, шикарное объяснение. Спасибо!

  • @andreybelyaev5703
    @andreybelyaev5703 3 года назад +3

    Отличное объяснение, все ясно и понятно.. Спасибо..

  • @ДаниилВасильев-т5б
    @ДаниилВасильев-т5б 3 года назад

    Огромное спасибо! Много материала просмотрел по асинхронному программированию , но это видео помогло снять с меня этот необъятный блок непонимания.

  • @user-yy1xf1ld8y
    @user-yy1xf1ld8y 4 года назад +1

    Мне понравилось, как ты объясняешь. Продолжай в том же духе

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov 2 года назад +2

    Великолепное объяснение! Благодарю!!! Подписка +1, колокол +, комментарий для продвижения канала +

  • @dmitryponyatov2158
    @dmitryponyatov2158 5 лет назад +8

    1:30 ёп! внутри меня тоже есть такой кот, который ничего не делает

  • @user-mv6fs9fk6r
    @user-mv6fs9fk6r 2 года назад

    Шикарно. Наконец-то свет в конце тоннеля))

  • @odnorob
    @odnorob 2 года назад

    Спасибо, очень последовательно и доходчиво

  • @DenisMagzhanov
    @DenisMagzhanov 2 года назад

    Прекрасное видео, большое спасибо!

  • @user-co7lr2rt7c
    @user-co7lr2rt7c 3 года назад

    Доступно объяснил! Спасибо!

  • @alexeydanilov1557
    @alexeydanilov1557 2 года назад

    Всё чётко и понятно. Спасибо! 👍

  • @user-ub4ik7jr4b
    @user-ub4ik7jr4b Год назад

    Круто! Спасибо)

  • @ws1339
    @ws1339 5 лет назад +1

    Спасибо!

  • @helios9312
    @helios9312 3 года назад +1

    Самый недооцененный туториал

  • @Диванныйстратег
    @Диванныйстратег 4 года назад

    Код точно так же, но выходит ошибка This event loop is already running. странно

  • @ThePirateHistory
    @ThePirateHistory 5 лет назад +1

    Чтобы было более понятно, нужно было асинхроность объяснять на простых функциях, с колбеками на yeld а не сразу с сайд либы!

  • @CZINKERR
    @CZINKERR 2 года назад

    Асинхронка в отличии от ООП очень легкая!

  • @banka9921
    @banka9921 5 лет назад

    Это работает только когда операции завершаются внутри функции? А как поступать если функция должна вернуть результат и программа продолжилась? Допустим программа пробегается по шапкам страниц поочередено в цикле, если условия удовлетворяют, то посылает запрос в функцию, спарсить страницу и вернуть результат, на основании результата решает сохранять его в список или нет. Такая программа большая часть времени будет ожидать возврата результата, так как парсинг не быстрый. Можно в этом случае использовать асинхронное программирование?
    П.с. Я так понимаю наверно нужно делать все расчеты внутри функции в том числе и расчет добавлять в список или нет и возвращать его в глобальной переменной?

    • @ShultaisEducation
      @ShultaisEducation  5 лет назад +1

      Ответ на ваш вопрос есть в следующих видео.

  • @brayaka1418
    @brayaka1418 4 года назад

    Потоки выполняются в одном процессе и одном ядре, логично что они так же не параллельны а асинхронные.

  • @vladyan01
    @vladyan01 2 года назад

    Так вот что такое корутины спорограммы, иелд

  • @AlbertCartel
    @AlbertCartel 5 лет назад

    Означает ли это, что теперь можно обойтись без Node.js, только Python? Так как это абсолютно одинаковое решение в обоих языках?

    • @dmitryponyatov2158
      @dmitryponyatov2158 5 лет назад

      Нет, нельзя - только nim-lang, только хардкор

  • @Nickola_United
    @Nickola_United Год назад

    С каких пор асинхронность запускается в разных потоках? Автор вроде путается в многопоточности и асинхронности

    • @ShultaisEducation
      @ShultaisEducation  Год назад +2

      Я минимум два раза в видео говорю, что асинхронность работает в одном потоке. Даже слайд привожу на эту тему. Вы видео, вообще, смотрели?

  • @MakarenkoSasha
    @MakarenkoSasha 4 года назад

    а если я не могу заменить sleep() на асинхронный?

    • @sap2me
      @sap2me 3 года назад +3

      Когда ты пишешь асинхронный код ты не можешь использовать блокирующие функции (time.sleep, socket, select, ...) так как они локнут твой событийный цикл. Вне зависимости от асинхронного фреймворка: asyncio, gevent, eventlet, trio и т.д, все они имеют свои неблокирующие аналоги блокирующим функциям из стандартной библиотеки. Хотя стоит отметить, что в gevent существует механизм изменения объектов при непосредственной работе программы, называется он monkey patching. Суть его в том что ты можешь использовать блокирующую функцию при написании кода, а gevent сам сделает с нее асинхронную в момент запуска интерпретатора. В интернетах говорят что так делать не желательно, так как по сути это магия. У меня нет знаний что бы это опровергнуть, но я сам использую манкипатчинг в своим проектах, пока проблем не было. Надеюсь я ответил на твой вопрос.

    • @4r4zzz
      @4r4zzz Год назад

      @@sap2me ты крут

  • @gnativyuriy3110
    @gnativyuriy3110 5 лет назад

    К Р А С И В О

  • @МаргаритаПерегудова-м2з

    Sleep блокирующий в асинхронном коде, вы весь код кирпичили своим слипом

    • @ShultaisEducation
      @ShultaisEducation  Год назад +1

      🤦‍♂ Я же начал урок с обычной не асинхронной функции и логично, что в ней был классический sleep, но к 8 минуте в коде используется asyncio.sleep и объясняется почему обычный sleep не подходит.

  • @MsGamzik
    @MsGamzik 3 года назад

    Не прибегая к помощи модуля async вызов можно сделать с помощью функций
    from time import sleep
    from time import time
    start = time()
    def site3(c, n):
    print(n, c)
    def site2(b, n):
    print(n, b)
    def site1(a, n):
    print(n, a)
    def site(a, b, c):
    for num in range(1, 4):
    sleep(1)
    site1(a, num)
    site2(b, num)
    site3(c, num)
    print()

    site("google", "yahoo", "yandex")
    print(f"time end: {round(time() - start, 2)}")

    • @Stalkiesss
      @Stalkiesss Год назад

      sleep это функция которая симулирует время покдлючения к сайту.

  • @mksmvnv
    @mksmvnv 7 месяцев назад

    incredible