Threading Python # 1. Multithreading in Python with simple examples

Поділитися
Вставка
  • Опубліковано 13 гру 2024

КОМЕНТАРІ • 94

  • @zproger
    @zproger  3 роки тому +23

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

  • @ArtemOriginativeAClub
    @ArtemOriginativeAClub 2 роки тому +4

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

  • @ukrmapper
    @ukrmapper 3 роки тому +6

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

    • @zproger
      @zproger  3 роки тому +2

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

  • @Alikhan-xm1xq
    @Alikhan-xm1xq Рік тому +2

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

  • @MrBrigadierArchived
    @MrBrigadierArchived Рік тому +1

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

  • @fsoky
    @fsoky 3 роки тому +5

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

  • @goshaposhlyy
    @goshaposhlyy 3 роки тому +2

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

    • @zproger
      @zproger  3 роки тому +1

      Спасибо :)

  • @KikrAzz
    @KikrAzz Рік тому +2

    thanks

  • @domochevsky4703
    @domochevsky4703 3 роки тому +8

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

    • @zproger
      @zproger  3 роки тому

      Благодарю

    • @alex_konor2197
      @alex_konor2197 2 роки тому

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

  • @TheNikita
    @TheNikita 3 роки тому +1

    Все понятно)

  • @konstantinkolmogortsev8724
    @konstantinkolmogortsev8724 2 роки тому +2

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

    • @antondopira5957
      @antondopira5957 Рік тому

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

  • @ertargn
    @ertargn 3 роки тому +2

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

    • @zproger
      @zproger  3 роки тому

      Согласен

  • @vestzeud2056
    @vestzeud2056 Рік тому +2

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

  • @flueriexeflueriexe7040
    @flueriexeflueriexe7040 3 роки тому +10

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

  • @ФионаФалеева
    @ФионаФалеева Рік тому

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

  • @dmitriynayanov6428
    @dmitriynayanov6428 2 роки тому

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

  • @worldtech2770
    @worldtech2770 2 роки тому +1

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

    • @Nicktimes
      @Nicktimes 2 роки тому +1

      Хуе его знает

    • @Yakov21
      @Yakov21 10 днів тому

      Это не совсем к теме ролика

  • @АйратКаримов-м3п
    @АйратКаримов-м3п 3 роки тому +2

    Топчик

    • @zproger
      @zproger  3 роки тому

      Благодарю :)

    • @АйратКаримов-м3п
      @АйратКаримов-м3п 3 роки тому +4

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

    • @zproger
      @zproger  3 роки тому +1

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

    • @ИгорьЛатуха
      @ИгорьЛатуха 2 роки тому

      @@zproger asyncio aiohttp aiostream 👍😁

  • @kirillstepankov
    @kirillstepankov Рік тому +11

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

    • @ДимаГуторка-с2ц
      @ДимаГуторка-с2ц Місяць тому

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

    • @Yakov21
      @Yakov21 10 днів тому

      Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.

  • @georgeseletski8241
    @georgeseletski8241 3 роки тому +2

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

    • @zproger
      @zproger  3 роки тому +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. А так, если там стоит запятая, то скобки уже воспринимаются как обьект кортеж

  • @Stich7777777777
    @Stich7777777777 2 роки тому

    Пушка

  • @tututu6425
    @tututu6425 6 місяців тому +1

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

    • @zproger
      @zproger  6 місяців тому +2

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

  • @drdizel777
    @drdizel777 7 місяців тому +1

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

    • @Yakov21
      @Yakov21 10 днів тому

      Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.

  • @hopelesssuprem1867
    @hopelesssuprem1867 2 роки тому +1

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

    • @zproger
      @zproger  2 роки тому

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

    • @hopelesssuprem1867
      @hopelesssuprem1867 2 роки тому

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

  • @firstandlast4435
    @firstandlast4435 Рік тому +1

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

    • @zproger
      @zproger  Рік тому

      Да, все верно

  • @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 я видео не полностью смотрел, лень было)И этот код нужен что несколько циклов бесконечных не останавливали другие, так что смысл от этого есть

  • @АйратКаримов-м3п
    @АйратКаримов-м3п 3 роки тому +1

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

    • @zproger
      @zproger  3 роки тому +1

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

  • @ivanbilinchuk9155
    @ivanbilinchuk9155 3 роки тому +1

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

    • @zproger
      @zproger  3 роки тому

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

  • @flueriexeflueriexe7040
    @flueriexeflueriexe7040 3 роки тому +3

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

    • @zproger
      @zproger  3 роки тому

      :/

    • @pashamix
      @pashamix 3 роки тому

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

  • @d.8663
    @d.8663 Рік тому +1

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

  • @denissunyaev3119
    @denissunyaev3119 Рік тому

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

  • @smartbox2445e
    @smartbox2445e 2 роки тому +6

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

    • @zproger
      @zproger  2 роки тому +4

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

  • @Dvoini
    @Dvoini Рік тому

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

  • @СтепанДмитриев-и9я

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

  • @user-yx5hl6en5c
    @user-yx5hl6en5c 2 роки тому

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

  • @possibly_unknown
    @possibly_unknown 2 роки тому

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

  • @alexeyb3121
    @alexeyb3121 2 роки тому

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

    • @АндрейМалышев-я3з
      @АндрейМалышев-я3з Рік тому

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

  • @AlenaBaniukevich
    @AlenaBaniukevich Рік тому +1

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

    • @Jetscrolls
      @Jetscrolls 12 днів тому

      Shift+

    • @Yakov21
      @Yakov21 10 днів тому

      Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.

  • @sofiaochkalova6931
    @sofiaochkalova6931 Рік тому +1

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

    • @zproger
      @zproger  Рік тому +1

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

    • @sofiaochkalova6931
      @sofiaochkalova6931 Рік тому

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

  • @Sasha-ub7pz
    @Sasha-ub7pz 3 роки тому +2

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

    • @zproger
      @zproger  3 роки тому

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

  • @АндрейМалышев-я3з

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

  • @ЛинаХамидуллина-ю6л
    @ЛинаХамидуллина-ю6л 6 місяців тому

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

    • @Yakov21
      @Yakov21 10 днів тому

      Потому что это не та тема которую можно сразу после курса рандомного изучать. Нужно хорошее понимание базы программирования и языка Python чего нет у 90-95% смотрящих ролик.

  • @GqqdArt
    @GqqdArt Рік тому

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

    • @zproger
      @zproger  11 місяців тому

      Разве нет?)

  • @Webian
    @Webian 11 місяців тому +1

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