Многопоточность и GIL

  Рет қаралды 34,746

Computer Science Center

Computer Science Center

8 жыл бұрын

Модули threading, queue и concurrent.futures. Использование потоков для параллельных вычислений на Python. GIL. Параллельность и конкурентность. Модуль asyncio. Модуль multiprocessing.
Лекция №13 в курсе "Python" (осень 2015).
Преподаватель курса: Сергей Лебедев
Страница лекции на сайте CS центра: goo.gl/fvCCpJ

Пікірлер: 29
@AdenConor
@AdenConor 8 жыл бұрын
Содержательный курс. Спасибо, Сергей!
@mistrebrown7642
@mistrebrown7642 3 жыл бұрын
Лучший курс по python, лучший лектор
@yurkai
@yurkai 7 жыл бұрын
-- Вот такая вот история! Отличный курс и лектор. Пс. Чиселка!
@user-zy2cc2dq8r
@user-zy2cc2dq8r 8 жыл бұрын
Спасибо за курс!
@jeromewicks3896
@jeromewicks3896 5 жыл бұрын
45:32 - Модуль futures 55:15 - Параллелизм и конкурентность 1:14:15 - Модуль multiprocessing
@nicholasspezza9449
@nicholasspezza9449 Жыл бұрын
глупый лакей
@rysbai-amanbai
@rysbai-amanbai 3 жыл бұрын
Очень содержательный курс! Спасибо большое!
@sabirshakirov4034
@sabirshakirov4034 4 жыл бұрын
Один из немногих годных курсов по python, действительно полезно
@nicholasspezza9449
@nicholasspezza9449 Жыл бұрын
соглашусь с вами из начала 2023
@valeriikuzivanov6832
@valeriikuzivanov6832 5 жыл бұрын
Спасибо, воистину годный контент!
@annazhydko2459
@annazhydko2459 4 жыл бұрын
Огромное спасибо!
@user-te3vt5zc1e
@user-te3vt5zc1e 8 жыл бұрын
Присоединяюсь, курс понравился. Перестал бояться метаклассов :)
@MrSvent0vit
@MrSvent0vit 4 жыл бұрын
Отличная лекция
@radifkurbanov3026
@radifkurbanov3026 Жыл бұрын
16:25 - join называется, потому что идёт присоединение потока, у которого вызывали метод join, к вызывающему. А присоединиться он сможет, только когда завершит свою работу. Поэтому и join() ждёт, пока поток выполнится и после этого присоединит этот поток к вызывающему потоку.
@radifkurbanov3026
@radifkurbanov3026 Жыл бұрын
26:47 - 27:17 - вообще-то, RLock имеет свой счётчик уровня рекурсии. И сделать релиз блокировки нужно ровно столько же раз, сколько мы сделали блокировок. Каждый вызов acquire() увеличивает этот счётчик на единицу, а каждый вызов release() уменьшает на единицу. Разблокировка произойдёт только тогда, когда этот счётчик будет равен нулю. Это в документации написано.
@usersbit
@usersbit 5 жыл бұрын
41:40 - зачем вызывать в потоке функцию follow рекурсивно? Ведь можно было бы сделать внешим циклом, что позволило бы избежать переполнения стека.
@NickZhukovv
@NickZhukovv 7 жыл бұрын
Сергей, спасибо за прекрасный курс лекций! Возможно, на слайде 32 есть небольшая неточность. Методу delayed необходимо передать еще один параметр: math.cos, но только если cos в intergrate "не зашит".
@slebedev
@slebedev 7 жыл бұрын
Да, действительно. Спасибо!
@cyber.val3
@cyber.val3 4 жыл бұрын
Conditional locks. важно уточнить, что поток customer должен быть запущен после producer иначе customer захватит лок и будет ждать элементы бесконечно, а producer не сможет их создать потому, что лок захвачен. А также, вот этот второй while приведет к тому, что мы попытаемся wait на отпущенном локе (producer отпустил) что вызовет исключение. Потому он не нужен.
@user-nb5ih1dm7d
@user-nb5ih1dm7d 3 жыл бұрын
Кажется, это не так. Даже если запустить consumer раньше, и он захватит блокировку, wait отпустит ее, пока не получит notify от другого треда (ну и release).
@user-vf1jm9rr8t
@user-vf1jm9rr8t Жыл бұрын
Насколько я знаю, pipe -- это вовсе не "свой путь python", а инструмент IPC ОС. Может быть, питон его и использует под капотом или там реально какая-то своя реализация?
@usercommon1
@usercommon1 2 жыл бұрын
и gil запрещëнная в российской федерации организация
@structureandconquer
@structureandconquer 3 жыл бұрын
Вспомнился анекдот про процесс: Гениколог: Раз аборт, два оборт - завтра еду на курорт Судья: Раз процесс, два процесс - завтра будет мерседес Учитель: Раз тетрадь, два тетрадь - есть чем ж.пу вытирать
@bambimbambas
@bambimbambas 3 жыл бұрын
Ого, шутка, ничего себе. Сам додумался, или чёртов клуб шизоидов подсказал ?
@structureandconquer
@structureandconquer 3 жыл бұрын
@@bambimbambas берите и делитесь дорогой Назар. Всех вам благ и компилируемого кода. П.с. Застрелитесь избавьте нас от ваших компетентных мнений
@nicholasspezza9449
@nicholasspezza9449 Жыл бұрын
@@bambimbambas отличная шутка, а вы просто глупое быдло, строящее из себя не пойми что.
@glassyjam217
@glassyjam217 Ай бұрын
Объясните колхознику, что криво-косо произнесённые английские слова в русской речи отвлекают от сути как если бы он рыгал каждую минуту
@user-hp7pc3lv3v
@user-hp7pc3lv3v 2 жыл бұрын
Отличная лекция
Python is NOT Single Threaded (and how to bypass the GIL)
10:23
Jack of Some
Рет қаралды 105 М.
Indian sharing by Secret Vlog #shorts
00:13
Secret Vlog
Рет қаралды 34 МЛН
didn't want to let me in #tiktok
00:20
Анастасия Тарасова
Рет қаралды 12 МЛН
Введение в язык программирования Rust
1:46:57
Computer Science Center
Рет қаралды 39 М.
Асинхронное программирование на примере Python / asyncio
1:21:19
Менеджмент разработки ПО
Рет қаралды 9 М.
Строки, байты, файлы и ввод/вывод
1:12:20
Computer Science Center
Рет қаралды 21 М.
Модули, пакеты и система импорта
1:47:40
Computer Science Center
Рет қаралды 13 М.