Threading Python # 1. Multithreading in Python with simple examples

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

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

  • @zproger
    @zproger  3 ปีที่แล้ว +23

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

  • @ukrmapper
    @ukrmapper 3 ปีที่แล้ว +6

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

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

      Рад что получается угадывать нужный материал) Спасибо

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

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

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

      Круто =)

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

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

  • @Alikhan-xm1xq
    @Alikhan-xm1xq ปีที่แล้ว +1

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

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

      Спасибо

  • @fsoky
    @fsoky 3 ปีที่แล้ว +5

    *Очень полезно, спасибо.*

  • @drdizel777
    @drdizel777 7 หลายเดือนก่อน +1

    Я как новичок, честно ничего не понимаю, такое ощущение что ты делишься своими знаниями делишься со своими коллегами которые так же все это знают -_-

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

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

  • @kirillstepankov
    @kirillstepankov ปีที่แล้ว +11

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

    • @ДимаГуторка-с2ц
      @ДимаГуторка-с2ц หลายเดือนก่อน

      Большое количество ошибок в ролике, поэтому ты не она дну не указал ?
      "Надо было как минимум объяснить почему если у нас есть GIL" - Кому надо было ? Клоун блять

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

    Все понятно)

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

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

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

      Спасибо :)

  • @domochevsky4703
    @domochevsky4703 3 ปีที่แล้ว +8

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

    • @zproger
      @zproger  3 ปีที่แล้ว

      Благодарю

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

      Хорошо, что прочёл твой комментарий до просмотра. Без примеров это видео для меня бесполезно.
      Спасибо тебе чел🤗

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

    thanks

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

      😎😎

  • @flueriexeflueriexe7040
    @flueriexeflueriexe7040 3 ปีที่แล้ว +9

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

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

    Пушка

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

    Есть просьба излагать материал чуть медленнее. У вас очень быстрый говор. Я понимаю, когда человек владеет информацией, он может быстро излагать мысли. Но для того, кто впервые смотрит видео, приходится пересматривать по несколько раз, чтобы уловить и код и слова.

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

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

    • @zproger
      @zproger  3 ปีที่แล้ว

      Согласен

  • @АйратКаримов-м3п
    @АйратКаримов-м3п 3 ปีที่แล้ว +2

    Топчик

    • @zproger
      @zproger  3 ปีที่แล้ว

      Благодарю :)

    • @АйратКаримов-м3п
      @АйратКаримов-м3п 3 ปีที่แล้ว +4

      @@zproger я прям ждал этого, если еще будет про асинхроность - что это такое, как это работает, и что делать если надо асинхронно, но внутри есть синхронные функции. Даже задоначу косарик, вообще не жалко

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

      после этого курса как раз планировался курс по асинхронности :)

    • @ИгорьЛатуха
      @ИгорьЛатуха 2 ปีที่แล้ว

      @@zproger asyncio aiohttp aiostream 👍😁

  • @ФионаФалеева
    @ФионаФалеева ปีที่แล้ว

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

  • @tututu6425
    @tututu6425 5 หลายเดือนก่อน +1

    Почему так мало просмотров у таких более сложных тем? Людям что потоки не нужны😂

    • @zproger
      @zproger  5 หลายเดือนก่อน +2

      Вот этот фактор и отталкивает снимать сложные темы, они как правило никому не интересны, если даже сейчас с аудиторией в 110к подписчиков я сделаю к примеру какой-то бесплатный курс по асинхронности, то на видео будет по 800 просмотров, поэтому смысла от таких видео нет.

  • @d.8663
    @d.8663 ปีที่แล้ว +1

    Всё хорошо, но было бы отлично если б была более четкая дикция...Много слов слышны только наполовину, так как они съедаются в попытке быстрее донести информацию. В итоге вместо того, чтоб на ходу переваривать услышанное, приходится перематывать назад и разбирать, что же вообще было за слово сказано: двойная работа, от которой быстро закипает мозг)) Лучше говори помедленнее, но чётко, а потом ускорь при обработке.

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

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

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

      его же можно вообще не указывать

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

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

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

      Хуе его знает

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

    без библиотек можно вот так:
    while True:
    a=1
    while a==1:
    a=0
    print("test")
    while a==0:
    a=1
    print("test1")

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

      ничего сложного как по мне, только это не совсем многопоточность, а аналог этого

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

      Мне показалось, или это отсылка к GIL?)

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

      @@zproger я видео не полностью смотрел, лень было)И этот код нужен что несколько циклов бесконечных не останавливали другие, так что смысл от этого есть

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

    А еще, мил человек, я вот как опытный программист со стажем, освоивший лист компрехеншонсы, хотел бы узнать у вас, в чем разница между многопоточностью и асинхронностью и как они оба в плане секса? А? М? Спасибо, жду нового видео!

    • @zproger
      @zproger  3 ปีที่แล้ว

      :/

    • @pashamix
      @pashamix 3 ปีที่แล้ว

      че ты такой язвительный? А? М? Спасибо, жду новый комментарий!

  • @user-yx5hl6en5c
    @user-yx5hl6en5c 2 ปีที่แล้ว

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

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

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

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

      потому что в args передается кортеж

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

      @@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:

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

      @@zproger обязательно кортеж? а список?

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

      @@gpankov Thread args принимает итерабельные обьекты. Тобишь, и список и кортеж тут работают

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

      @@gordeytsy283 видимо из-за того что () также используются и в операциях вычисления. К примеру (3+3) * 9. А так, если там стоит запятая, то скобки уже воспринимаются как обьект кортеж

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

    Про args вообще не понял, что это и зачем нужно.
    Upd. Возможно понял. Так как в target мы передаем объект функции, то в args мы передаем аргументы с которой нужно вызвать эту функцию, правильно?

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

      Да, все верно

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

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

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

    Пришлось несколько раз пересматривать. С первого раз вообще ничего не понятно, очень сложно.

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

      Ага, эта тема не всегда сразу воспринимается, нужно немного времени и попыток

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

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

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

      Официальная документация, ну и кроме этого есть много статей

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

      @@zproger эх, жаль что приходится по кускам собирать)

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

    Как создавать настраиваемое количество потоков просто задавая их количества ане экземпляр?

  • @АйратКаримов-м3п
    @АйратКаримов-м3п 3 ปีที่แล้ว +1

    Последний пример с поочередным выполнением потоков можно сделать с помощью асинхронности? Если да - то какая разница?

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

      Асинхронность работает абсолютно по-другому, когда будет курс на эту тему я рассмотрю разницу

  • @СтепанДмитриев-и9я
    @СтепанДмитриев-и9я 2 ปีที่แล้ว

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

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

    Создать поток, вызывающий функцию с print это понятно. А если мне нужно создать поток, который вызывает функцию, возвращающую результат, и с этим результатом потом работать.

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

    лучше использовать потоки из pyqt/pyside там больше контроля над потоками есть

    • @zproger
      @zproger  3 ปีที่แล้ว

      Ну это лучше в Qt проекте, но в обычной cli программе это не уместно, кстати про сигналы также будет видео :)

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

    как с потока ответ получить?

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

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

    • @АндрейМалышев-я3з
      @АндрейМалышев-я3з ปีที่แล้ว

      Нет, потому что это два разных процесса. Сам же сказал, что это второй экземпляр программы, а потоки это, можно сказать, ветвления одной программы.
      Ну, я так понимаю.

  • @Sasha-ub7pz
    @Sasha-ub7pz 3 ปีที่แล้ว +2

    Вспомнил JS: потоки умеют нагружать CPU и спать , а асинхронность заставляет 1 ядро за все потоки работать.
    Так что не надо своих демонов пропагандировать, помню бота на сервак поставил с ними и он , после второго клиента, не проснулся...

    • @zproger
      @zproger  3 ปีที่แล้ว

      Потоки это всего лишь инструмент и он применяется только по назначению, ту же асинхронность тоже далеко не везде будет правильно использовать

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

    тяжело... смотрела на скорости 0.8
    очень бы хотелось видеть вместо футажей в начале слайды, которые бы +- дублировали устный текст
    футажи отвлекают, а тема и так не простая

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

      Спасибо, учту

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

      @@zproger Спасибо вам за полезные видео!

  • @АндрейМалышев-я3з
    @АндрейМалышев-я3з ปีที่แล้ว

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

  • @ЛинаХамидуллина-ю6л
    @ЛинаХамидуллина-ю6л 5 หลายเดือนก่อน

    нихрена не поняла😂

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

    Совсем простые примеры 😂😂😂 вы бля иждеваетесь

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

      Разве нет?)

  • @Webian
    @Webian 10 หลายเดือนก่อน +1

    Мультипроцесність а не мультипроцесорність