No video

Параллельное программирование на Python

  Рет қаралды 67,395

Тимофей Хирьянов

Тимофей Хирьянов

Күн бұрын

Курс из 15 занятий, читается весной 2021 года в МФТИ, школа ЛФИ, 2 курс.
Тема 3-го занятия: Параллельное программирование на Python.
Материалы курса: github.com/tkh...
Telegram-канал для общения вольнослушателей: t.me/tkhiriano...
Спонсировать канал: / tkhirianov или www.paypal.me/...
Вместо спонсорства мне предлагаю помочь Тимофею 7 лет из Набережных Челнов восстановить ухо: bolshie-dela.c...

Пікірлер: 123
@iritaka
@iritaka 3 жыл бұрын
Тайм-коды: многопоточность, асинхронность, Thread, Очередь/Queue, GIL 0:00 Однопоточность. Последовательное программирование, где 1 исполнитель 4:26 чередование (interleaving). Планировщик задач 13:02 смысл чередования 14:14 ядро. Работа с отложенными задачами, не зависает 22:10 несколько ядер 23:50 цели параллельного программирования: 24:51 1) интерактивность, 2) скорость вычисления 27:20 CPU Генератор частоты 32:10 2 способа увеличить скорость вычислений: 1) много ядер или процессоров. Система с общей памятью 37:17 2) много вычислительных систем (распределённая). Система с разделённой памятью. Бывают: - гомогенные (кластер/фабрика) - гетерогенные (вычислительная сеть, по network) 41:01 Параллельность 43:14 схемы взаимодействия процессов: 44:08 1) shared memory (общая память) 47:18 (-) критическая секция программного кода (двойное вычисление) heisenbug (гейзенбаг) плавающая ошибка 52:15 как решить: Блокировки. Нужна ОС. Mutual exclusion (взаимные исключения) mutex 57:52 разная организация общей памяти 58:35 Queue Очереди 58:58 Pipe очередь символьная. Низкоуровневые сокеты 1:00:55 параллельный алгоритм затратен и требует сложной отладки (в возможных багах) 1:02:04 отладка параллельных систем. В очередях берет на себя - библиотека ЯП 1:09:02 2) другой, проще способ - взаимодействие процессов: main thread. Нити Исполнения 1:12:42 получение результата из треда - join() присоединение нити 1:15:05 у каждой нити свой стэк. Синхронный и асинхронный вызов 1:16:14 взаимодействие между нитями автоматически происходит через shared memory, мы можем и там организовать очередь для взаимодействия без блокировок. Библиотека очередь queue 1:17:53 GIL (Global Interpreter Lock) в Питоне. Глобальная блокировка интерпретатора. Утечка памяти (memory leak) 1:26:55 (+) интерактивность 1:28:51 Практика. Презентация Многопоточность в Python: 1) Поток и процесс, 2) Передача данных между потоками при помощи pipe и общей памяти, 3) GIL, 4) Асинхронное выполнение потоков, 5) Библиотеки threading, multiprocessing, asyncio 1:29:00 Питон - язык не для параллельного программирования. Но в стандартной библиотеке есть: 1:29:40 1) низкоуровневые нити _thread - Low-level threading API 2) высокоуровневый threading 1:30:54 Код. Создание нитей (потоков) и процессов 1:34:34 получение результата с нити. Запуск потока с применением threading 1:35:30 (+) отдельная возможность - запускать и отдельно - передавать параметры 1:36:34 Глобальные переменные - это великое зло для параллельного программирования. Это скрытая критическая секция 1:42:28 передача данных между потоками при помощи pipe и общей памяти Queue 1:43:11 есть очереди, предназначенные для взаимодействия уже самих вычислительных процессов. А есть - для нитей 1:43:27 библиотека queue для threaded programming (передача информации между нитями) 1:44:16 очередь для разных вычислительных процессов multiprocessing.Queue 1:44:20 когда разные вычислительные процессы у нас работает одновременно несколько интерпретаторов Python. (+) производительность 1:45:00 Код. put и get (давать и брать) в/из очереди 1:47:25 Pipe - структура данных для связи между процессами в multiprocessing 1:53:33 Менеджер - класс многопроцессорных модулей, обеспечивающий общую информацию 1:55:30 Заключение. Ограниченный ресурс параллельности. Возможность параллелизации. Зависимость от данных. Начать вычисление может только 1 актор. При максимальной эффективности Скачать конспект: www.patreon.com/iritaka
@user-hu7tu5qe7b
@user-hu7tu5qe7b 3 жыл бұрын
Спасибо Вам
@user-nh7ic5ie3q
@user-nh7ic5ie3q 11 ай бұрын
​@@user-hu7tu5qe7bт
@user-nh7ic5ie3q
@user-nh7ic5ie3q 11 ай бұрын
тттТ
@user-nh7ic5ie3q
@user-nh7ic5ie3q 11 ай бұрын
Л
@valentin3241
@valentin3241 Жыл бұрын
Гениальный преподаватель. С горящими глазами, юмором, уместными метафорами! Нет слов, браво!
@mmm43kir
@mmm43kir 3 жыл бұрын
Пишет "параллельное программирование" не отвлекаясь на свои слова. Это реальный пример такого программирования.
@fanlug
@fanlug 3 жыл бұрын
10 выпавших блоков питания из 10
@peskarr
@peskarr Ай бұрын
Захожу в лекции Хирьянова после чтения документации, чтобы вспомнить ощущение, когда всё понимаешь.
@user-ih4mc1je1o
@user-ih4mc1je1o 3 жыл бұрын
Тимофей Федорович, большое спасибо за ваши лекции, очень интересно и очень полезно
@dmitriyvaulin
@dmitriyvaulin 2 жыл бұрын
но не особо точно :)
@dimaalexeenko3669
@dimaalexeenko3669 3 жыл бұрын
Крутой канал, мужику респектище, знает своё дело
@denisbaranoff
@denisbaranoff 3 жыл бұрын
Как всегда - превосходен 👏 Особенно, хотелось отметить особый талант лектора
@MrMegaNatural
@MrMegaNatural 3 жыл бұрын
Спасибо Тимофей, всегда с большим удоволствием смoтрю ваши лекции!
@headcliff07
@headcliff07 3 жыл бұрын
Respect. Timofey Xiryanov You are the best. Thanks!!!
@olegger7436
@olegger7436 3 жыл бұрын
Просто замечательная подача информации. Ждем продолжения, тема очень интересная
@user-yq1yd7nx8g
@user-yq1yd7nx8g 3 жыл бұрын
Шикарное объяснение, спасибо вам
@skrskrbam
@skrskrbam 3 жыл бұрын
как быстро время летит, попал на ваше видео 2017 года, а вы все также молоды👍🏿
@act0r399
@act0r399 3 жыл бұрын
Вот это я понимаю любовь к своему делу, прекасно)) Спасибо Вам Тимофей))
@pomapoma6643
@pomapoma6643 3 жыл бұрын
Ваши лекции прекрасны!
@erxewq2844
@erxewq2844 3 жыл бұрын
Добрый день. Благодарю вас за прекрасные лекции. Для комфортного просмотра отключайте, пожалуйста, уведомления - они сильно отвлекают)
@alinakasper392
@alinakasper392 3 жыл бұрын
Лучший преподаватель в мире.
@maxbespontoff2771
@maxbespontoff2771 3 жыл бұрын
Великолепная подача информации. Мое вам почтение.
@valitovgaziz
@valitovgaziz 3 жыл бұрын
Большое человеческое спасибо.
@usernoname-wv6of
@usernoname-wv6of Жыл бұрын
Это лучшее объяснение фунтамента параллелизма, что я видел. must-see
@user-ef3bt9ni4o
@user-ef3bt9ni4o 3 жыл бұрын
Тимофей Федорович, респект и уважуха, очень вдохновляете, я подсел на ваши лекции)
@sergeyv1534
@sergeyv1534 3 жыл бұрын
Спасибо за лекцию - очень интересно, информативно и полезно!
@user-pe1um3ml3n
@user-pe1um3ml3n 3 жыл бұрын
Супер! очень полезно. Скорее бы след. лекция.
@senegalgreen6869
@senegalgreen6869 2 жыл бұрын
преподаватель от Бога! Спасибо!
@grigoralex406
@grigoralex406 8 ай бұрын
лекция про потоки весьма своевременна. читаю лутца и прохожу как раз потоки
@mylittlebigcom
@mylittlebigcom 3 жыл бұрын
1:27:57 - Новая тема курса от Тимофея Федоровича)) Спасибо за то, что делаете!!!
@tremorkikimor
@tremorkikimor 3 жыл бұрын
Вспомнил момент восхищения от новости про выход Pentium D - ДВУХЯДЕРНЫЙ!!!! ЭТО КАК ДВА ПРОЦЕССОРА НО В ОДНОМ!!! Статью прочитал тогда в игромании или стране игр, точно не помню журнал.
@Rez0lventa
@Rez0lventa Жыл бұрын
Прекрасный рассказчик и отличный материал!
@linkina1585
@linkina1585 3 жыл бұрын
Спасибо Вам большое. Жаль у нас школе так не умеют преподавать материал
@ealbitg1043
@ealbitg1043 3 жыл бұрын
Как всегда лайк. Не хватает примеров, которые вы на ходу демонстрировали на прошлых видео. Например, как с черепахой и объяснением , что происходит в конкретном месте. Этого очень не хватает , когда высоздаете классы наследующие из базовых классов
@hardcoreentertainments5496
@hardcoreentertainments5496 3 жыл бұрын
++++++++++ Хороший Учитель! Респект однозначно!
@mcusfuns6907
@mcusfuns6907 3 жыл бұрын
Рекомендую курс и преподаватель отличный. Коммент вместо второго лайка.
@serg3205
@serg3205 3 жыл бұрын
Люблю питончик!!!
@professorwoland9554
@professorwoland9554 Жыл бұрын
Тайм-код 8:20 Правильнее доля вычисляется так: dt/(dt+∆t)
@yuradubinin9778
@yuradubinin9778 3 жыл бұрын
Барабанщику не сложно, он вёслами не крутит 😂 Нет, а если серьезно , то спасибо вам большое)) Очень интересно слушать
@Ma_X64
@Ma_X64 3 жыл бұрын
Хорошему не сложно))) А плохому -- когда как)) Особенно, если после концерта бьют в гримёрке ;D
@Vologdos
@Vologdos 3 жыл бұрын
Вижу, что Тимофей под конец лекции устал. Красавчик
@user-zi7tu3xy8y
@user-zi7tu3xy8y 3 жыл бұрын
буквально недавно задавался этим вопросом многопоточности, пришел к выводу, что не совсем блокировка нужна а реорганизация процесса, Первое это присвоение статусов для объектов с которыми работает поток(процесс) на такие как: свободен, занять процессом, обработан процессом(завершен) и еще возможно какие то дополнительные статусы. Что бы не возникало ситуации доступа нескольких процессов одновременно к одному свободному объекту и путаницы какой процесс раньше его возьмет(как в вашем примере с туалетом), какой позже и т д, организуется очередь. Сначала любой свободный или освободившийся поток попадает в очередь и ждет, пока предыдущий поток не станет занят. схема Fifo lifo. Возможно оно так организовано и я не владею всей полной информации о распределении потоков, но вижу правильной работу распределения такой.
@rhurus
@rhurus 3 жыл бұрын
1:42:14 функция is_prime не определена
@user-gq6dv9pp5h
@user-gq6dv9pp5h 3 жыл бұрын
Видимо какой то блок выше не отработал или так и было задумано.
@user-vu8pl8zl7h
@user-vu8pl8zl7h 3 жыл бұрын
Мне понадобилось какое-то время чтобы осознать, что "общая память" не только общая в плане физического расположения относительно акторов, но и всмысле общего доступа к одним переменным (или адресам).
@non5309
@non5309 8 ай бұрын
кто тут еще с курса на степике по многопоточному программированию на python?
@vadimushkevich1283
@vadimushkevich1283 3 жыл бұрын
Interleaving. Каждые 50 минут звенит звонок начала урока. Ученик (процессор) открывает портфель, достаёт соответствующую очередному предмету тетрадку, может быть ещё что-то (линейку, циркуль) и приступает к этому уроку. И выполняет этот урок до звонка окончания урока. Затем он убирает эту тетрадь и другое в портфель.По очередному звонку начала очередного урока ученик достаёт тетрадь другого предмета согласно расписанию и т.д
@sekejodemini1
@sekejodemini1 3 жыл бұрын
Круто! А почему следующая лекция скрыта?
@tkhirianov
@tkhirianov 3 жыл бұрын
Поправил. Проверяйте.
@sekejodemini1
@sekejodemini1 3 жыл бұрын
Тимофей Фёдорович, вы лучший, спасибо!
@KirillKlenov
@KirillKlenov 3 жыл бұрын
Вводная общая часть прекрасна, практическая часть на питоне несколько сумбурна и непроработана.
@palyashuk42
@palyashuk42 Жыл бұрын
Топовый лектор!
@alexeivinnikov9614
@alexeivinnikov9614 3 жыл бұрын
Добрый день! Не по теме видео вопрос, но всё же: сейчас приняли (или принимают) закон о просветительской деятельности. Как сильно это Вас коснется? Стоит ли уже запасливо копировать Ваши видео себе на винт (а то я недавно начал Вас смотреть и изучать Python) или рано мне панику разводить?
@Ma_X64
@Ma_X64 3 жыл бұрын
Здесь точно проблем не будет, т.к. эти лекции изначально для конкретных учебных заведений. Там в законе это отдельно прописано.
@Ma_X64
@Ma_X64 3 жыл бұрын
С тем, что в микроконтроллере нет операционной системы, категорически не согласен. Каких только ОС нет под них. Ну, самая популярная, конечно FreeRTOS. Но в последнее время появились камни достаточно мощные (даже с несколькими ядрами), чтобы тянуть даже линуксы -- урезанные, конечно, вроде бизибокса. Более того! Параллельная многозадачность в МК существует всегда, вне зависимости от того, используем мы ОС или нет. Там же есть прерывания от периферии, которые могут вклиниваться в основной процесс в случайные моменты. А, например, МК Propeller вообще восьмиядерный, и там вообще всё выполняется истинно параллельно.
@andriiroiko8608
@andriiroiko8608 3 жыл бұрын
Thanks :)
@alexeyshulgin4556
@alexeyshulgin4556 3 жыл бұрын
Тимофей Федорович, спасибо за простое разъяснение. Не могли бы Вы кратко коснуться особенностей распараллеливания на CUDA и посоветовать какой-либо популярно-практический материал по этой теме. Спасибо.
@tkhirianov
@tkhirianov 3 жыл бұрын
Алексей, к сожалению, не работал пока на видеокартах. Как только поработаю в этой теме и разберусь, постараюсь сделать курс или хотя бы пару лекций.
@alexeyshulgin4556
@alexeyshulgin4556 3 жыл бұрын
@@tkhirianov Огромное спасибо! С нетерпением буду ждать.
@exploringtheworld8780
@exploringtheworld8780 3 жыл бұрын
Спасибо!
@radifkurbanov3026
@radifkurbanov3026 2 жыл бұрын
1:51:30 - Сразу после запуска процесса p, у вас parent_conn начинает принимать соединения и в этот же момент другой процесс p отправляет туда массив. Так что всё логично. Это же два разных процесса
@guiterenzog2723
@guiterenzog2723 Жыл бұрын
Именно поэтому и должен быть вывод другой)
@Ma_X64
@Ma_X64 3 жыл бұрын
Если кто помнит, не так давно были нередки вредоносы под винду, которые, когда запускались, жрали 100% процессора. Многие думали, что они какие-то мегавычисления там выполняют на проце, а на самом деле, там крутился пустой цикл в потоке, который ожидал подключения по сети. Видимо, оптимизация переключения процессов как-то так устроена, что если никакой серьёзной работы процесс не выполняет, то, типа, подождём -- недолго же, а он всё продолжает и продолжает скакать с команды на команду. Т.е. эти самые вредоносы писались какими-то очень криворукими людьми, которые либо не замечали такого палевного бага, либо не знали, как починить. А там всего-то и нужно, что чем-нибудь занять проц или уйти в сон на миллисекунду, напрмер, проверив отсутствие соединения.
@volodymyromelenchuk7528
@volodymyromelenchuk7528 3 жыл бұрын
Огромное спасибо за интересные и полезные лекции! Жаль правда, что ссылка на гитхаб с файлами в описании не активная((
@volodymyromelenchuk7528
@volodymyromelenchuk7528 3 жыл бұрын
@@Throttle0496 оо, спасибо! твоя ссылка работает
@alexeyzabashta
@alexeyzabashta 3 жыл бұрын
30:05 процессор к радиатору "прикипел"
@theatreoftragedy7524
@theatreoftragedy7524 3 жыл бұрын
Тимофей, подскажите, пожалуйста, в МФТИ есть программы обучения для тестировщиков ?
@user-hu7tu5qe7b
@user-hu7tu5qe7b 3 жыл бұрын
Спасибо Вам
@dmitriyvaulin
@dmitriyvaulin 2 жыл бұрын
Прерывание выставляет флаг в стеке процессора, и планировщик - watchdog при проверке пробуждает процессор для выполнения hook-а - входа полученных данных от прерывания в ожидающую программу.
@LSE13
@LSE13 3 жыл бұрын
Магнитов, кажется, все больше и больше. К концу курса они заполнят всю доску?:)
@morrigan_ghost
@morrigan_ghost 3 жыл бұрын
не знаю что я здесь делаю, но очень интересно
@alexanderkolesnik9357
@alexanderkolesnik9357 3 жыл бұрын
30:07 Это как так проц к радиатору прилепился?))) это спец экспонат, или он там вообще в сокете без держателя?)
@Ginto_O
@Ginto_O 3 жыл бұрын
Ну, вообще сокет можно разобрать, для некоторых китайских процессоров надо так делать
@psevdonim3972
@psevdonim3972 3 жыл бұрын
отличный ролик, но хотелось бы больше материалов по c++
@alexp2179
@alexp2179 3 жыл бұрын
кому чего, я вот конкретно этот урок ждал)
@ilyaclutcher
@ilyaclutcher 2 жыл бұрын
В начале видео всё очень было похоже на асинхронность в Python)
@stavros1983
@stavros1983 Жыл бұрын
День добрый. А остальные 10 занятий будут выставляться? Как их можно увидеть?
@jamjam3337
@jamjam3337 8 ай бұрын
👏👍
@user-oj7lo6mv7h
@user-oj7lo6mv7h 3 жыл бұрын
39:59 bus?
@idw1n235
@idw1n235 3 жыл бұрын
Здравствуйте Тимофей. Студенты в МФТИ пишут курсовую, дипломную(по программированию), попадались или рассматривает ли МФТИ работы студентов с коммерческой точки зрения? Дипломная работа, проект который соберут трое студентов, может содержать интересные решения в различных сферах... Тему Искусственный интеллект привлекает Наше правительство в МФТИ?
@idw1n235
@idw1n235 3 жыл бұрын
Может ли привлечь?
@ninaosokina3551
@ninaosokina3551 Жыл бұрын
Процессоры тоже загружены на 146% 😅😂🤣
@ivanihnatsenkau8984
@ivanihnatsenkau8984 3 ай бұрын
Когда кто-то пытается объяснить как работать с параллельным программированием 1:47:28
@user-zg2bx5cb3d
@user-zg2bx5cb3d 3 жыл бұрын
ТФ, извините, конечно, но иногда видно непонимание каких-то базовых моментов с вашей стороны. Не стоит смешивать асинхронное выполнение и выполнение на потоках, не рассказав про EventLoop, про разницу I/O-bound и CPU-bound задач. Разумеется, потоки и асинхронность предполагают выигрыш в случае I/O-bound задач, когда процессы решают CPU-bound, но реализованы они по-разному со всеми вытекающими. В случае асинхронного выполнения, в частности, data race condition быть не может, поскольку это не параллельное выполнение, а конкурентное (concurrency), т.е. всё выполняется в одном потоке внутри одного процесса. Тем не менее в asyncio есть Lock, Semaphore, Condition, BoundedSemaphore, Event, Queue и ряд других примитивов синхронизации, но их цель несколько другая. Также рекомендую ознакомиться с понятием воркера, которое есть как на потоках, процессах, так и в асинхронности. Этот способ существенно облегчает и делает более безопасным выполнение корутин (это про асинхронность). Рекомендую: «Архитектура компьютера» Танебаума, «Async Techniques and Examples in Python» Майкла Кеннеди (см. nnmclub, ну или я могу скинуть вам эти материалы), видео с канала Corey Schafer, лекции Юрия Селиванова (Python core developer, asyncio maintainer), Андрея Светлова (aiohttp maintainer), материалы по асинхронности в других языках, где она реализована лучше, нежели в Python: go с его goroutine и каналами, например, или js с его Promise'ами.
@user-zg2bx5cb3d
@user-zg2bx5cb3d 3 жыл бұрын
И, возможно, Алексей Голобурдин с канала Диджитализируй в скором времени начнёт свой курс «WEB разработка на Python», где расскажет в том числе про асинхронный Python.
@bluxer4225
@bluxer4225 3 жыл бұрын
читать тут все умеют.
@georgiipetrovich5407
@georgiipetrovich5407 3 жыл бұрын
Race condition безусловно может возникнуть и при одном процессоре, и нескольких потоках, то есть при concurrent выполнении: ; 1 поток mov addr, %rax ; Произошло переключение потоков ; 2 поток mov addr, %rax inc %rax mov %rax, addr ; Снова переключение потоков ;1 поток inc %rax mov %rax, addr Такая ситуация вполне может случиться при выполнении "конкурентно" чего то в духе x += 1 А когда поток один - это вообще не concurrency
@user-zg2bx5cb3d
@user-zg2bx5cb3d 3 жыл бұрын
@@georgiipetrovich5407 нет, ознакомьтесь с темой
@user-zg2bx5cb3d
@user-zg2bx5cb3d 3 жыл бұрын
@@bluxer4225 вы этим сообщением доказали, что умеете писать? Или зачем эта никому не нужная, пустая писня от профана?
@lonelydance
@lonelydance 3 жыл бұрын
pymentor
@avazart614
@avazart614 2 жыл бұрын
В питоне нет многопоточности - есть только полупоточность. (Шутка намекающая на проблему с GIL)
@user-gc5xj6rk9l
@user-gc5xj6rk9l 3 жыл бұрын
Что такое параллельное программирование? АЛУ не может работать параллельно в силу своей физики. Тогда параллельное программирование это исполнение одной программы несколькими процессорами одновременно. Выигрыш в скорости. На такое параллельное программирование я согласен. То что он описывает это не параллельное а периодическое исполнение разных программ. Время исполнения команд тоже самое. Но теряется время на переходы. В чём смысл?
@user-fe5oj9ex9i
@user-fe5oj9ex9i Жыл бұрын
допустим нужно отрисовывать графику игры и одновременно организовать управления через клавиатуру , тут без таких пирирываний никак
@artemmarzipan5452
@artemmarzipan5452 9 ай бұрын
И давно киркоров преподаёт?
@TheUncleCarlo
@TheUncleCarlo 5 ай бұрын
Слабая лекция, важные практические моменты не рассмотрены вообще
@BogdanDotPy
@BogdanDotPy Жыл бұрын
Я вот считаю, что вы тратите моё время пока пишете на доске, монтажем можно было воспользоваться
@alexanderzhilcov5392
@alexanderzhilcov5392 3 жыл бұрын
виндовозеры хехе
@mr.senmax6185
@mr.senmax6185 Жыл бұрын
Знаю я одного "раба на галерах" - войну устроил.
@user-nh7ic5ie3q
@user-nh7ic5ie3q 11 ай бұрын
Щщ
@user-ec8cd5xt1v
@user-ec8cd5xt1v 3 жыл бұрын
гля. киркоров уже питон преподает)))
@patrickspilmann5008
@patrickspilmann5008 3 жыл бұрын
Вы - крутой! Гульфик Фюрер - сидеть! Не надо переплетать себя с политикой, Вы же мастер своего дела, а не политик...
@whitebear1903
@whitebear1903 3 жыл бұрын
*Ты же знаешь сколько преподаватели получают, ты что голодного хочешь убедить, что он сытый? Имеет полное право и не ссыт.*
@MalvinasArgentinas1982
@MalvinasArgentinas1982 Жыл бұрын
No entiendo un carajo
Скорость вычислений на Python (урок №4)
1:46:31
Тимофей Хирьянов
Рет қаралды 39 М.
SOLID-принципы. Введение в ООП на Python.
1:10:13
Тимофей Хирьянов
Рет қаралды 291 М.
А ВЫ УМЕЕТЕ ПЛАВАТЬ?? #shorts
00:21
Паша Осадчий
Рет қаралды 1,5 МЛН
OMG what happened??😳 filaretiki family✨ #social
01:00
Filaretiki
Рет қаралды 13 МЛН
Little brothers couldn't stay calm when they noticed a bin lorry #shorts
00:32
Fabiosa Best Lifehacks
Рет қаралды 20 МЛН
女孩妒忌小丑女? #小丑#shorts
00:34
好人小丑
Рет қаралды 83 МЛН
Алгоритмы на Python 3. Лекция №1
1:20:50
Тимофей Хирьянов
Рет қаралды 5 МЛН
КАК УСТРОЕН TCP/IP?
31:32
Alek OS
Рет қаралды 51 М.
Асинхронное программирование на примере Python / asyncio
1:21:19
Менеджмент разработки ПО
Рет қаралды 11 М.
Многопоточность и GIL
1:21:47
Computer Science Center
Рет қаралды 35 М.
Практика программирования на Python 3, лекция №4
1:14:31
Тимофей Хирьянов
Рет қаралды 102 М.
Практика программирования на Python 3, лекция №8
1:20:17
Тимофей Хирьянов
Рет қаралды 112 М.
1. Анализ данных. Введение в Python
1:58:34
А ВЫ УМЕЕТЕ ПЛАВАТЬ?? #shorts
00:21
Паша Осадчий
Рет қаралды 1,5 МЛН