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

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

Комментарии • 29

  • @AdenConor
    @AdenConor 8 лет назад +21

    Содержательный курс. Спасибо, Сергей!

  • @mistrebrown7642
    @mistrebrown7642 3 года назад +3

    Лучший курс по python, лучший лектор

  • @yurkai
    @yurkai 7 лет назад +16

    -- Вот такая вот история!
    Отличный курс и лектор.
    Пс. Чиселка!

  • @user-zy2cc2dq8r
    @user-zy2cc2dq8r 8 лет назад +8

    Спасибо за курс!

  • @rysbai-amanbai
    @rysbai-amanbai 3 года назад

    Очень содержательный курс! Спасибо большое!

  • @sabirshakirov4034
    @sabirshakirov4034 4 года назад +2

    Один из немногих годных курсов по python, действительно полезно

  • @valeriikuzivanov6832
    @valeriikuzivanov6832 6 лет назад

    Спасибо, воистину годный контент!

  • @jeromewicks3896
    @jeromewicks3896 5 лет назад +12

    45:32 - Модуль futures
    55:15 - Параллелизм и конкурентность
    1:14:15 - Модуль multiprocessing

  • @user-te3vt5zc1e
    @user-te3vt5zc1e 8 лет назад +1

    Присоединяюсь, курс понравился. Перестал бояться метаклассов :)

  • @annazhydko2459
    @annazhydko2459 4 года назад

    Огромное спасибо!

  • @radifkurbanov3026
    @radifkurbanov3026 2 года назад +1

    16:25 - join называется, потому что идёт присоединение потока, у которого вызывали метод join, к вызывающему. А присоединиться он сможет, только когда завершит свою работу. Поэтому и join() ждёт, пока поток выполнится и после этого присоединит этот поток к вызывающему потоку.

  • @MrSvent0vit
    @MrSvent0vit 4 года назад

    Отличная лекция

  • @radifkurbanov3026
    @radifkurbanov3026 2 года назад +1

    26:47 - 27:17 - вообще-то, RLock имеет свой счётчик уровня рекурсии. И сделать релиз блокировки нужно ровно столько же раз, сколько мы сделали блокировок. Каждый вызов acquire() увеличивает этот счётчик на единицу, а каждый вызов release() уменьшает на единицу. Разблокировка произойдёт только тогда, когда этот счётчик будет равен нулю. Это в документации написано.

  • @NickZhukovv
    @NickZhukovv 7 лет назад +2

    Сергей, спасибо за прекрасный курс лекций!
    Возможно, на слайде 32 есть небольшая неточность. Методу delayed необходимо передать еще один параметр: math.cos, но только если cos в intergrate "не зашит".

    • @slebedev
      @slebedev 7 лет назад +3

      Да, действительно. Спасибо!

  • @cyber.val3
    @cyber.val3 4 года назад +1

    Conditional locks.
    важно уточнить, что поток customer должен быть запущен после producer иначе customer захватит лок и будет ждать элементы бесконечно, а producer не сможет их создать потому, что лок захвачен.
    А также, вот этот второй while приведет к тому, что мы попытаемся wait на отпущенном локе (producer отпустил) что вызовет исключение. Потому он не нужен.

    • @user-nb5ih1dm7d
      @user-nb5ih1dm7d 3 года назад +1

      Кажется, это не так. Даже если запустить consumer раньше, и он захватит блокировку, wait отпустит ее, пока не получит notify от другого треда (ну и release).

  • @usersbit
    @usersbit 5 лет назад +1

    41:40 - зачем вызывать в потоке функцию follow рекурсивно?
    Ведь можно было бы сделать внешим циклом, что позволило бы избежать переполнения стека.

  • @usercommon1
    @usercommon1 2 года назад +6

    и gil запрещëнная в российской федерации организация

  • @user-vf1jm9rr8t
    @user-vf1jm9rr8t Год назад

    Насколько я знаю, pipe -- это вовсе не "свой путь python", а инструмент IPC ОС. Может быть, питон его и использует под капотом или там реально какая-то своя реализация?

  • @structureandconquer
    @structureandconquer 3 года назад +3

    Вспомнился анекдот про процесс:
    Гениколог:
    Раз аборт, два оборт - завтра еду на курорт
    Судья:
    Раз процесс, два процесс - завтра будет мерседес
    Учитель:
    Раз тетрадь, два тетрадь - есть чем ж.пу вытирать

    • @bambimbambas
      @bambimbambas 3 года назад +1

      Ого, шутка, ничего себе.
      Сам додумался, или чёртов клуб шизоидов подсказал ?

    • @structureandconquer
      @structureandconquer 3 года назад

      @@bambimbambas берите и делитесь дорогой Назар. Всех вам благ и компилируемого кода.
      П.с.
      Застрелитесь избавьте нас от ваших компетентных мнений

    • @nicholasspezza9449
      @nicholasspezza9449 Год назад

      @@bambimbambas отличная шутка, а вы просто глупое быдло, строящее из себя не пойми что.

  • @glassyjam217
    @glassyjam217 2 месяца назад

    Объясните колхознику, что криво-косо произнесённые английские слова в русской речи отвлекают от сути как если бы он рыгал каждую минуту

  • @user-hp7pc3lv3v
    @user-hp7pc3lv3v 2 года назад

    Отличная лекция