Спасибо за ликбез по мультипоточности ядер) "Немножко" дополню/скорректирую в режиме зануды: 1:00 Процесс и поток на процессоре может быть один, когда нет ОС. Это кучу МК (микроконтроллеров) и им подобных процов. Даже на х86 можно запустить монопроцесс и, обычно, вы его пускаете. BIOS Based I/O system не редко однопоточна+однопроцессна (но может мои данные устарели) 1:20 я бы прям в начале уточнил разницу между "работает" и "выполняется" ("исполняется"). Состояния ожидания тоже работа (это вам не зомби) и одновременно реально работать без переключений могут сотни процессов, а вот с выполнением да, только один в один фрейм исполнения. Хотя кому-то наоборот "программа исполняется" это существование процесса, а "программа работает" это греет воздух, трасформируя данные 3:20 строго говоря у программы может быть и 0 (ноль) потоков/процессов. Пример -- скрипты, которые не оперируют потоками/процессами, а исполняются родительским интерпретатором. 3:40 программа != процесс, 4:00 потоки так-то бывают разные и на сколько я знаю у потоков могут быть свои адресные пространства, но не уверен. Надо изучить что в каких ОС 4:36 гонки потоков можно, как избегать рядом подходов в мультипоточном прог-ии, так и исключать, так что проблема не совсем понятно, зачем сюда внесена, но при этом даже о законе Абеля ни слова( Часть про простаивающие ядра оставляю на совести автора, там у меня нет знаний, за тем и смотрел =) 12:43 асинхронность, а точнее асихронное программирование либо асихронное выполнение это *один из* способов решить проблему, как достичь большой отдачи на малом числе ядер/потоков. В принципе можно и 10к дескрипторов потоков создать и нихай ОС сама их рулит, если поток умеет переходить в ожидание, то даже разрулит) 14:10 высокоэффективные ли? Если замерять RPS, то с высокой верятностью при идентичной задаче JS можно отточить не лучше питона, тот не лучше явы (иногда питон быстрее даже правильно "сваренной" явы), а эти ребята всё равно уступят Go/RUST/C++/Fortran (я счас о пределе, который можно выжать, а не о качестве библиотек, которые делают разрыв обычно ещё сильнее) Эффективно на тех же JS/Python писать ёмкий код (мало строк, много логики и смысла), но тут ни JIT, ни процессоры, ни ОС ни при чём 14:50 это упрощение сродни Пи = 3, простите. EL исполняет задачи из очереди на исполнение по мере завершения исполнения текущих задач (в частности для JS это по одной задаче), а задачи, завершаемые не выходом, а переходом в ожидание, по мере удовлетворения ожидания, перекладывает в очередь ожидания и взятием из очереди на исполнение следующей задачи На этом всё, надеюсь уточнения кто-то дочитает, а не в в воздух это...
Немного сложновато, хотелось бы увидеть это ПРЯМ НА РЕАЛЬНОМ ПРИМЕРЕ! Прям наглядно увидеть многопоточность, сам ПОТОК/ПРОЦЕСС. Вот есть компьютер, и что мне делать чтобы увидеть этот поток, процесс?! Запустить программу что-ли? (Понятное дело что и сама ос что-то да выполняет, но как увидеть ожидание процесса, как увидеть что работает многопоточность НА РЕАЛЬНОМ ПРИМЕРЕ?!) МОЖЕТ МОЖНО ПРОГРАММУ НАПИСАТЬ И НАГЛЯДНО УВИДЕТЬ?!? Подскажите пожалуйста, буду благодарен!
@@danilakim5126 простейший варик: запускаете live-образ линукс-based (проще говоря убунты), ставите там htop, запускаете его. Там можно наглядно увидеть нити (posix-based threads, по-нашему потоки) и их родительские процессы. Можно изучить и препарировать их, если будет желание. Ещё вариант тот же Process Explorer вместо классического Task Manager виндового способен показать потоки виндовых процессов (не моя специфика, не знаю на сколько глубоко там можно копать) А так, на хабре том же найти реально)
Сделаю паузу и скажу. Когда увлекался своим ZX-Spectrum-ом, изучал ассемблер. Благодаря этому, не плохо понимаю тему прерываний, т.к. там это было оооочень хорошо видно. Изначально, на zx работает только одна прога. По учебнику, делал на машинных кодах часы, которые работали в фоне в системе. Для это создаётся прерывание, у которого есть свой номер, как сейчас сказали бы, свой ID. Когда сделал эти часы, которые висят и не пропадают, был в восторге)
Господа,а можно поподробнее про прерывания? Прерывание разве можно создавать? Прерывания в zx spectrum это аналог программы или это всё таки ближе к callback функции?
Когда набираю в поиске какую-то тему, и в ленте вижу твоë видео об этом - для меня это как явная подсветка - "Здесь точно будет качественное разъяснение." И так и получается.
Ну это всего лишь вводный материал, хотя и достаточно качественный. В ВУЗ-ах часто смотрят более углубленно в проблемы и применения многопоточности, асинхронности(Если это нормальный ВУЗ с хорошим преподавательским составом). Не стоит полностью обесценивать знания которые дает учебное заведение, если оно хорошее(а студент нет). Обидно, если за пол года в учебном заведении тебе действительно рассказали только эти вещи. Такие вузы я называю шарагами
никогда не пишу комментарии, то здесь просто не смогла удержаться. Качество видео на высшем уровне, очень редко встретишь такое. Информация разложена по полочкам, максимально понятно))
Пересмотрел кучу лекций и подкастов про многопроцессность, многопоточность и асинхронность. Но все было очень сложно и заурядно. Здесь просто и понятно. Спасибо огромное за видео, у тебя талант объяснять!
Ты очень круто всё объясняешь! Очень нравится структура твоих видео! Нет никакой воды из разряда «что бы установить пакет, используйте пип инсталл…» но в тоже время нет «эээ ну тут просто переписываете ядро». Всё очень понятно, доступная информация
Присоединяюсь к остальным комментариям, тема очень интересная, так как в Python очень много асинхронных возможностей. Мне например не хватая уровня английского, чтобы читать официальные документации в оригинале не хватает понимания в теме корутины, генераторы, asincio и всё в том духе, информации в интернете много, но всё обо всём да ни о чем, надеюсь у Вас получится наиболее точно осветить эти темы. Давно наблюдаю за каналом, очень нравится как Вы объясняете.
Опа))) пол года назад собирался для себя рисёрч делать по этому вопросу, задавал вопросы парням в чатах в телеге, но так достаточно времени на это и не выделил. Спасибо)))
Шик, как раз то о чём я просил в комментариях)) Классная лекция! Было бы круто добавить визуализацию, какие-нибудь простые анимированные схемы, но может это я зажрался просто)
Отличный пример отличия async от thread, и ведь знал что оно так происходит, но когда спрашивали про разницу, лез куда-то вглубь, не задумываясь об этом моменте
На С++ писал свой фреймворк для многопоточного обмена сообщениями между разными модулями системы (похоже на модель акторов). Интересное видео! Жду продолжения.
Очень понятно все разложил, спасибо большое, как раз пытаюсь учить питон, Я пока на синтаксисе, но думаю уже с этих пор нужно понимать какие технологии испольовать в коде, чтобы на выходе получить нормальное приложение, с высокой эффективностью,однозначно, лайк
Крутое видео, очень интересно слушать! Будет интересно затронуть обзор реализации асинхронности в только что вышедшей Django 3.1 - что можно с ее помощью делать, что нельзя (напр., пока нет асинхронного ORM, вебсокетов), как отличается деплой, ощущается ли разница в скорости работы с обычным синхронным подходом.
Хорошая подача! Спасибо за информацию, подписался на канал! Было бы неплохо ввести какие-то графические схемы - визуализация помогла бы лучше понять слова и зависимость понятий поток/процесс/ядро/асинхронность
Интересная тема, жду продолжения и желательно с реальным примером, ну например по описанной задаче обработки http-запросов, трансляци их к субд и выдаче результата клиенту
Мой курс «Хардкорная веб-разработка» - course.to.digital
Вжух!
Спасибо за ликбез по мультипоточности ядер)
"Немножко" дополню/скорректирую в режиме зануды:
1:00 Процесс и поток на процессоре может быть один, когда нет ОС. Это кучу МК (микроконтроллеров) и им подобных процов. Даже на х86 можно запустить монопроцесс и, обычно, вы его пускаете. BIOS Based I/O system не редко однопоточна+однопроцессна (но может мои данные устарели)
1:20 я бы прям в начале уточнил разницу между "работает" и "выполняется" ("исполняется"). Состояния ожидания тоже работа (это вам не зомби) и одновременно реально работать без переключений могут сотни процессов, а вот с выполнением да, только один в один фрейм исполнения. Хотя кому-то наоборот "программа исполняется" это существование процесса, а "программа работает" это греет воздух, трасформируя данные
3:20 строго говоря у программы может быть и 0 (ноль) потоков/процессов. Пример -- скрипты, которые не оперируют потоками/процессами, а исполняются родительским интерпретатором.
3:40 программа != процесс,
4:00 потоки так-то бывают разные и на сколько я знаю у потоков могут быть свои адресные пространства, но не уверен. Надо изучить что в каких ОС
4:36 гонки потоков можно, как избегать рядом подходов в мультипоточном прог-ии, так и исключать, так что проблема не совсем понятно, зачем сюда внесена, но при этом даже о законе Абеля ни слова(
Часть про простаивающие ядра оставляю на совести автора, там у меня нет знаний, за тем и смотрел =)
12:43 асинхронность, а точнее асихронное программирование либо асихронное выполнение это *один из* способов решить проблему, как достичь большой отдачи на малом числе ядер/потоков. В принципе можно и 10к дескрипторов потоков создать и нихай ОС сама их рулит, если поток умеет переходить в ожидание, то даже разрулит)
14:10 высокоэффективные ли? Если замерять RPS, то с высокой верятностью при идентичной задаче JS можно отточить не лучше питона, тот не лучше явы (иногда питон быстрее даже правильно "сваренной" явы), а эти ребята всё равно уступят Go/RUST/C++/Fortran (я счас о пределе, который можно выжать, а не о качестве библиотек, которые делают разрыв обычно ещё сильнее) Эффективно на тех же JS/Python писать ёмкий код (мало строк, много логики и смысла), но тут ни JIT, ни процессоры, ни ОС ни при чём
14:50 это упрощение сродни Пи = 3, простите. EL исполняет задачи из очереди на исполнение по мере завершения исполнения текущих задач (в частности для JS это по одной задаче), а задачи, завершаемые не выходом, а переходом в ожидание, по мере удовлетворения ожидания, перекладывает в очередь ожидания и взятием из очереди на исполнение следующей задачи
На этом всё, надеюсь уточнения кто-то дочитает, а не в в воздух это...
Немного сложновато, хотелось бы увидеть это ПРЯМ НА РЕАЛЬНОМ ПРИМЕРЕ! Прям наглядно увидеть многопоточность, сам ПОТОК/ПРОЦЕСС. Вот есть компьютер, и что мне делать чтобы увидеть этот поток, процесс?! Запустить программу что-ли? (Понятное дело что и сама ос что-то да выполняет, но как увидеть ожидание процесса, как увидеть что работает многопоточность НА РЕАЛЬНОМ ПРИМЕРЕ?!) МОЖЕТ МОЖНО ПРОГРАММУ НАПИСАТЬ И НАГЛЯДНО УВИДЕТЬ?!? Подскажите пожалуйста, буду благодарен!
@@danilakim5126 простейший варик: запускаете live-образ линукс-based (проще говоря убунты), ставите там htop, запускаете его. Там можно наглядно увидеть нити (posix-based threads, по-нашему потоки) и их родительские процессы. Можно изучить и препарировать их, если будет желание.
Ещё вариант тот же Process Explorer вместо классического Task Manager виндового способен показать потоки виндовых процессов (не моя специфика, не знаю на сколько глубоко там можно копать)
А так, на хабре том же найти реально)
Братан ты бы вышел на улицу воздухом подышал, пивка попил
Тема интересная, ждем продолжения.
Сделаю паузу и скажу. Когда увлекался своим ZX-Spectrum-ом, изучал ассемблер. Благодаря этому, не плохо понимаю тему прерываний, т.к. там это было оооочень хорошо видно. Изначально, на zx работает только одна прога. По учебнику, делал на машинных кодах часы, которые работали в фоне в системе. Для это создаётся прерывание, у которого есть свой номер, как сейчас сказали бы, свой ID. Когда сделал эти часы, которые висят и не пропадают, был в восторге)
А по какому учебнику учился? Интересно, т.к. сам на спектруме ассемблер познавал в 90-х
У меня было наоборот: понимание устройства event loop помогло разобраться с прерываниями на ардуино)))
Господа,а можно поподробнее про прерывания? Прерывание разве можно создавать? Прерывания в zx spectrum это аналог программы или это всё таки ближе к callback функции?
@@Enerdzizer в спектруме, прерывание задаётся в каком-то регистре и вроде указывается адрес перехода. Уже не помню
Продолжай в тоже духе! Хороших лекторов не так уж много!
Спасибо!
ua-cam.com/users/shortsHpwZpcfOxto?feature=share
@@t0digital Поддерживаю
Спасибо за видео! Важная тема, давно жду ее)
Когда набираю в поиске какую-то тему, и в ленте вижу твоë видео об этом - для меня это как явная подсветка - "Здесь точно будет качественное разъяснение."
И так и получается.
Спасибооо!
Полугодовой предмет ВУЗа в 16 минутах, понятным языком. Вот что значит Питонист вещает)
Ну это всего лишь вводный материал, хотя и достаточно качественный. В ВУЗ-ах часто смотрят более углубленно в проблемы и применения многопоточности, асинхронности(Если это нормальный ВУЗ с хорошим преподавательским составом). Не стоит полностью обесценивать знания которые дает учебное заведение, если оно хорошее(а студент нет).
Обидно, если за пол года в учебном заведении тебе действительно рассказали только эти вещи. Такие вузы я называю шарагами
ua-cam.com/users/shortsHpwZpcfOxto?feature=share
@@romanwednesday4401шёл 2024, похоже остались одни шараги)
@@romanwednesday4401 вуз это полное гавно
Наверное самое лучшее видео по этой теме на ютубе! Все четко и понятно!
Спасибооо!
никогда не пишу комментарии, то здесь просто не смогла удержаться. Качество видео на высшем уровне, очень редко встретишь такое. Информация разложена по полочкам, максимально понятно))
Спасибо, очень приятно!
Пересмотрел кучу лекций и подкастов про многопроцессность, многопоточность и асинхронность. Но все было очень сложно и заурядно. Здесь просто и понятно. Спасибо огромное за видео, у тебя талант объяснять!
Спасибо большое, очень приятно! Буду продолжать
Благодарю за ваш труд!
Комментарий ради большего раскрытия асинхронности
Спасибо :)!
Алексей, всегда приятно тебя слушать.
Спасибо!
Ты очень круто всё объясняешь! Очень нравится структура твоих видео! Нет никакой воды из разряда «что бы установить пакет, используйте пип инсталл…» но в тоже время нет «эээ ну тут просто переписываете ядро». Всё очень понятно, доступная информация
Ждём следующее видео! Тема очень интересная, интересно услышать твои мысли!
Спасибо!
Спасибо тебе, добрый человек, спустя 4 года.
Супер, самая не скучная лекция :)
Присоединяюсь к остальным комментариям, тема очень интересная, так как в Python очень много асинхронных возможностей. Мне например не хватая уровня английского, чтобы читать официальные документации в оригинале не хватает понимания в теме корутины, генераторы, asincio и всё в том духе, информации в интернете много, но всё обо всём да ни о чем, надеюсь у Вас получится наиболее точно осветить эти темы. Давно наблюдаю за каналом, очень нравится как Вы объясняете.
Сейчас это точно лучший канал о программировании в Русскоязычном ютюбе!
Очень приятно получать такую оценку работы, спасибо!
Здорово. Отличный ввод в многопоточность и асинхронность. Спасибо.
Рад, что полезно!
Отличный способ подачи, без заумных фраз, но и без ненужного разжевывания простых вещей, жду ещё
Спасибо, рад, что понравилось!
Просто красавчик!
Супер!
Как раз по чуть чуть нахватал и так удачно залетел на это видео!
Спокойно четко понятно.
Спасибо.
SUPER!!!
Пересматриваю этот видос в 3 раз. Он как хороший фильм или книга, каждый раз понимаю его по новому
Рад, что полезно! Спасибо!
@@t0digital вам спасибо :)
Классный Канал , Рад что познакомился с Автором. Очень интересно
Спасибооо! Приятно
Добрый день, видео интересное и познавательное и вызывает ещё больше вопросов😁. Буду ждать следуещее видео)
Спасибо!
Спасибо за подробное и понятное описание!
Уважение за видео, было интересно))
Спасибо!
Приятная речь, приятный парень, спасибо большое
Спасибо!
Спасибо! Вы отлично объясняете! Ценный материал!
спасибо за "асинхронность"!видео с темой
Ну наконец то нашел нормальное объяснение, спасибо Вам огромное!!
Четкое видео, очень доступно объяснил, лайк и подписка
Всё предельно ясно и по полочкам, спасибо большое!
Рад, что полезно! Спасибо!
Здравствуйте, спасибо за полезное видео, объяснили все доступно и понятно
Опа))) пол года назад собирался для себя рисёрч делать по этому вопросу, задавал вопросы парням в чатах в телеге, но так достаточно времени на это и не выделил. Спасибо)))
Прокачаем эту тему еще глубже в следующих видео:)
@@t0digital Ну что же))) Москва не сразу строилась))) спасибо за труд)))
Клевое видео для погружения в тему!
Спасибо! Мега крутой теоритический видос! Осталось разобраться с практикой
Спасибо! Скоро будет практика
Классно рассказываешь, приятная атмосфера
Спасибо!
наконец-то хоть где-то нормально рассказали об асинхронность. Ждём следующего видео.
Спасибо! Продолжение следует:)
Круто получилось - просто и понятно. Ждем подобные разборки. Спасибо )
Спасибо!
Спасибо , надеюсь разберусь в теме асинхронности с нуля до полного понимания благодаря вашим роликам. Перехожу к следующему )
Шик, как раз то о чём я просил в комментариях)) Классная лекция! Было бы круто добавить визуализацию, какие-нибудь простые анимированные схемы, но может это я зажрался просто)
Спасибо! Вот появится если у нас монтажёр, тогда будут красивости, у меня времени не хватает на анимации, к сожалению
Поддерживаю. Визуализация каждой отдельной подтемы еще больше бы добавила информативности такому хорошему ролику.
Подписки растут быстрым темпом! Отлично)
Дааа:) Спасибо!
Полезная тема! Для веб-приложений асинхронность важнее многопоточности и в этом надо разбираться. Годно!
спасибо большое за простое но в то же время содержательное видео!
Ждём продолжения!
Скоро будет:)
Говоришь быстро, но подача отличная). Спасибо!
Спасибо!
Ждём продолжения!)
Спасибо! Скоро будет продолжение
Очень доступно ^_^ спасибо!
Юхууу, спасибо! 🙏
Отличный пример отличия async от thread, и ведь знал что оно так происходит, но когда спрашивали про разницу, лез куда-то вглубь, не задумываясь об этом моменте
Не ожидал, от канал с таким количеством подписчиков, такого качества видео, продолжайте в том же духе!
Спасибо! Подписчики тоже понемногу растут, что приятно🙏
Невероятно интересно! Спасибо за то что объясняете все таким простым и понятным языком!!!
Спасибо! Рад, что нравится:)
ua-cam.com/users/shortsHpwZpcfOxto?feature=share
На С++ писал свой фреймворк для многопоточного обмена сообщениями между разными модулями системы (похоже на модель акторов). Интересное видео! Жду продолжения.
Спасибо!
Алексей! Спасибо за ваши видео! Почаще бы.
Не хватало визуализации для наглядности, а в целом ОООчень крутое видео о важном.
Большое спасибо.
Какой-нибудь комментарий для быстрого развития канала и в поддержку новых интересных полезных видео
Спасибооо!
Смотрел часовую лекцию, все запутанно и непонятно, а тут за 16 минут, спасибо
Рад, что понравилось:)!
Спасибо, освежил память
computer science - актуалочка :) Продолжайте!
Дааа:) Спасибо!
16 минут прошли незаметно. Очень интересно!
Рад, что интересно:)!
Спасибо большое! У меня была каша в голове по этой теме, никак не мог понять как это все связано
Очень доступно объяснил, спасибо!
Интересные все видео. Спасибо. Много полезного, без понтов, доступно и профессионально.
Спасибо! Рад, что полезно
Очень понятно все разложил, спасибо большое, как раз пытаюсь учить питон, Я пока на синтаксисе, но думаю уже с этих пор нужно понимать какие технологии испольовать в коде, чтобы на выходе получить нормальное приложение, с высокой эффективностью,однозначно, лайк
Как же приятно тебя слушать! Спасибо и удачи в развитии!
Спасибо, уважаемый. Выделите, пожалуйста, для этой темы отдельный плейлист.
так и будет:) спасибо!
@@t0digital Спасибо, тема актуальная для многих. Уверен, Ваш опыт будет полезен подписчикам.
Спасибо! Отличную тему затронули, надеюсь будет продолжение. 🙏
Будет обязательно!
Крутое видео, очень интересно слушать! Будет интересно затронуть обзор реализации асинхронности в только что вышедшей Django 3.1 - что можно с ее помощью делать, что нельзя (напр., пока нет асинхронного ORM, вебсокетов), как отличается деплой, ощущается ли разница в скорости работы с обычным синхронным подходом.
планирую такой материал, да
Спасибо.. Внятно, понятно и без воды.. Талант педагога налицо!
Спасибооо!
Спасибо за труд!
Спасибо! Очень полезно!
Алексей, молодец! Здорово рассказываешь, просто о сложном! Интересная тема и все по полочкам.
Спасибо!
ua-cam.com/users/shortsHpwZpcfOxto?feature=share
Ждем продолжение
Хорошая подача! Спасибо за информацию, подписался на канал!
Было бы неплохо ввести какие-то графические схемы - визуализация помогла бы лучше понять слова и зависимость понятий поток/процесс/ядро/асинхронность
да, тоже ищу визуализацию
Классное видео. Ждём практики.
Немного практики есть в следующем видео на канале, оно уже есть. А разбираться будем в следующих :)
Интересная тема, жду продолжения и желательно с реальным примером, ну например по описанной задаче обработки http-запросов, трансляци их к субд и выдаче результата клиенту
всё будет:)
Материал преподносится отлично! Продолжайте в том же духе! Снимите ещё про асинхронные фреймворки 🔥🔥
Будет такой материал обязательно
Спасибо за разъяснение такой интересной, непростой, но важной темы.
Спасибо за информацию. Легко и интересно слушать. То что искал!
Огонь!
Спасибо! Ждём обзор способов межпоточного и межпроцессного взаимодействия
Очень интересно рассказываете)
Крутой канал, смотрю, хоть и не занимаюсь разработкой)
Спасибо, приятно:)
Отличная тема! Было бы интересно ещё о GUI посмотреть на примере PyQT/Tk/PySympleGUI
Без лишней воды. Спасибо огромное за такие ценные рассуждения.
Первой барьер в 1 Гц прошла AMD.
Они чуть-чуть опередили тогда Intel
Чуть чуть-чутей?))
Очень толковое объяснение !
Спасибо!
Просто лучшее объяснение из всех, что я смотрел, все четко и структурированно. Спасибо огромное!
Спасибо большое, очень доходчиво.
Чешутся руки уже что-то написать, но впереди столько теории для того, что бы я только начал говнокодить (
Алекс! Это было самое понятное объяснение на тему GIL и async которое я видел :) Продолжай снимать!
Спасибо:)!
Алексей, спасибо, смотрю все твои видео подряд, старые еще надо закончить смотреть. ) Невероятно полезно, особенно Джуну. ) Продолжай дальше!
Будем продолжать!
Очень полезное видео. Лайк
Самое чёткое и ясное введение в тему какое только встречал!
Классная подача материала!
Спасибооо💪
Спасибо, реально помог разобраться)
Без лишней воды. Спасибо огромное за инфо.
И Тебе спасибо большое!