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

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 พ.ย. 2024

ความคิดเห็น • 40

  • @breuslife
    @breuslife 5 ปีที่แล้ว +12

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

  • @4r4zzz
    @4r4zzz ปีที่แล้ว +1

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

  • @doc736
    @doc736 6 ปีที่แล้ว +17

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

    • @АртемЮдін
      @АртемЮдін 3 ปีที่แล้ว

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

  • @vlad_covers
    @vlad_covers 6 ปีที่แล้ว +9

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

  • @ДаниилВасильев-т5б
    @ДаниилВасильев-т5б 4 ปีที่แล้ว +1

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

  • @andreybelyaev5703
    @andreybelyaev5703 4 ปีที่แล้ว +3

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

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov 2 ปีที่แล้ว +3

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

  • @хейтерымр.пушка
    @хейтерымр.пушка 4 ปีที่แล้ว +1

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

  • @odnorob
    @odnorob 2 ปีที่แล้ว

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

  • @linako_o
    @linako_o 2 ปีที่แล้ว

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

  • @dmitryponyatov2158
    @dmitryponyatov2158 5 ปีที่แล้ว +8

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

  • @DenisMagzhanov
    @DenisMagzhanov 2 ปีที่แล้ว

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

  • @ДмитрийБобров-м7ч
    @ДмитрийБобров-м7ч 3 ปีที่แล้ว

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

  • @alexeydanilov1557
    @alexeydanilov1557 2 ปีที่แล้ว

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

  • @Pavel-t5f
    @Pavel-t5f ปีที่แล้ว

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

  • @helios9312
    @helios9312 3 ปีที่แล้ว +1

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

  • @ws1339
    @ws1339 5 ปีที่แล้ว +1

    Спасибо!

  • @Диванныйстратег
    @Диванныйстратег 4 ปีที่แล้ว

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

  • @banka9921
    @banka9921 6 ปีที่แล้ว

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

    • @ShultaisEducation
      @ShultaisEducation  6 ปีที่แล้ว +1

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

  • @vladyan01
    @vladyan01 2 ปีที่แล้ว

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

  • @MakarenkoSasha
    @MakarenkoSasha 4 ปีที่แล้ว

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

    • @sap2me
      @sap2me 4 ปีที่แล้ว +3

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

    • @4r4zzz
      @4r4zzz ปีที่แล้ว

      @@sap2me ты крут

  • @CZINKERR
    @CZINKERR 2 ปีที่แล้ว

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

  • @ThePirateHistory
    @ThePirateHistory 5 ปีที่แล้ว +1

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

  • @AlbertCartel
    @AlbertCartel 5 ปีที่แล้ว

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

    • @dmitryponyatov2158
      @dmitryponyatov2158 5 ปีที่แล้ว

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

  • @brayaka1418
    @brayaka1418 5 ปีที่แล้ว

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

  • @fuuuns
    @fuuuns หลายเดือนก่อน

    Пздц, почти 10 лет никто и ничто не могло мне объяснить "эмуляцию" мультипоточности в одном потоке пайтона. Звучало как бред и противоречие, слыхал ранее но ни йоту не понимал. Спасибо. Вот она, ядро отличия от Го. От "истинной" мультипоточности

  • @Nickola_United
    @Nickola_United ปีที่แล้ว

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

    • @ShultaisEducation
      @ShultaisEducation  ปีที่แล้ว +2

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

  • @gnativyuriy3110
    @gnativyuriy3110 6 ปีที่แล้ว

    К Р А С И В О

  • @МаргаритаПерегудова-м2з
    @МаргаритаПерегудова-м2з ปีที่แล้ว

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

    • @ShultaisEducation
      @ShultaisEducation  ปีที่แล้ว +2

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

    • @fuuuns
      @fuuuns หลายเดือนก่อน

      Видео не смотри, комментарии пиши. Или пускай сопли, школотрон недоношенный! Одно из лучших пояснений. Ты само много в своей жизни настолько доступных диаграмм нарисовало? То-то же!!

  • @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 2 ปีที่แล้ว

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

  • @mksmvnv
    @mksmvnv 9 หลายเดือนก่อน

    incredible