Магистерский курс C++ (МФТИ, 2022-2023). Лекция 19. Многопоточность, часть 1.

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 ก.ย. 2024

ความคิดเห็น • 28

  • @vecherinsky
    @vecherinsky ปีที่แล้ว +3

    59:28 еще ни разу нас так жестко не разводили на этом курсе 😆 огромное спасибо за труд, Константин!

  • @keesaev320
    @keesaev320 ปีที่แล้ว +3

    Лучший

  • @makaedg
    @makaedg ปีที่แล้ว +6

    Спасибо за лекцию! Кстати было бы интересно послушать про случайные числа, спектральные характеристики и энтропию

    • @tilir
      @tilir  ปีที่แล้ว +4

      Хорошая идея для спешала. Я кое-что про это знаю.

  • @artemrusinov3034
    @artemrusinov3034 ปีที่แล้ว +1

    Спасибо! Все очень четко и понятно

  • @sergeygrechishnikov282
    @sergeygrechishnikov282 ปีที่แล้ว +2

    Константин спасибо вам за лекцию 👍
    Надеюсь в дальнейшем будет рассмотрена тема отладки и поиска ошибок в конкурентных приложениях.

    • @tilir
      @tilir  ปีที่แล้ว +3

      Да в следующий раз я поставлю эту задачу и расскажу несколько решений. Но они если что будут неутешительными. Простого способа нет.

    • @sergeygrechishnikov282
      @sergeygrechishnikov282 ปีที่แล้ว

      @@tilir Спасибо.
      Я понимаю что они будут сложными, поэтому и спросил про эту тему))
      Будем разбираться.

  • @user-kz4bx7bp5s
    @user-kz4bx7bp5s ปีที่แล้ว +2

    Здравствуйте! Спасибо за замечательную лекцию
    Кажется, на слайде 32 нужно сделать мьютекс mutable, чтобы использовать его в константных методах top() и empty()
    (если, конечно, имеется ввиду, что он - член класса)

    • @tilir
      @tilir  ปีที่แล้ว

      Это хорошее замечание. Я сознательно не написал код этих методов. Мы это обсудим на следующей лекции.

  • @vladalu9794
    @vladalu9794 ปีที่แล้ว +1

    очень интересно, спасибо огромное за материал! detach() в CG рекомендуют не использовать вообще.

    • @tilir
      @tilir  ปีที่แล้ว

      Я тоже видел немного разумных применений для detach.

  • @ddvamp
    @ddvamp 2 หลายเดือนก่อน

    43:10 Константин, возможно стоит убрать повсеместно на слайдах указание типа мьютекса у guards, перейдя на CTAD? Или же вы таким образом ещё и показываете, какой именно мьютекс используется в примере?

    • @tilir
      @tilir  หลายเดือนก่อน

      В целом можно. Но мне кажется материал и без того тяжёлый, добавлять поводов для надевания волшебных очков не хочется.

  • @user-fv3bf6ex6e
    @user-fv3bf6ex6e ปีที่แล้ว +3

    Спасибо за лекцию! На 45:21 задаётся вопрос сколько весит lock_guard, и Ваш ответ: "не дороже чем mutex". Имелось же в виду не дороже чем ссылка на мьютекс?

    • @tilir
      @tilir  ปีที่แล้ว +1

      Да вы правы там внутри T&. Я почему-то ожидал что сам мьютекс тоже не слишком тяжёлый т.к. это хендл на объект ядра. Но сейчас проверил и нет, там полноценные 40 байт.

    • @user-fv3bf6ex6e
      @user-fv3bf6ex6e ปีที่แล้ว +1

      @@tilir я почему решил переспросить, так потому что помню, что у mutexа нет ни copy, ни move конструкторов (они есть, но deleted)

  • @grincha09
    @grincha09 ปีที่แล้ว +2

    1:14:07 действительно ли scoped_lock тяжелее lock_guard? Говорят "You can consider lock_guard deprecated" и "scoped_lock was (among the multiple mutex stuff) designed as a replacement to lock_guard, since the former could not be modified without breaking ABI". Как думаете?

    • @tilir
      @tilir  ปีที่แล้ว +2

      Внезапно не тяжелее. Что интересно, он тоже обходится просто ссылкой если мьютекс один. А если не секрет это вы откуда цитируете?

    • @grincha09
      @grincha09 ปีที่แล้ว

      @@tilir ответы стаковерфлоу :)

  • @McRay8
    @McRay8 7 หลายเดือนก่อน

    ни разу не сишник, но очень интересно

  • @АлександрБотев
    @АлександрБотев 22 วันที่ผ่านมา

    29:07 не зачет аудиторий)

  • @alexandrgrigoriev9577
    @alexandrgrigoriev9577 ปีที่แล้ว

    На th-cam.com/video/xTpAJWe7ZD4/w-d-xo.html вызывается destroy, в котором вручную вызывает деструктор для каждого указателя на объект. Но ведь ::operator new в 73-й строке не создает объекты. Не будет ли при удалении UB ?

    • @tilir
      @tilir  ปีที่แล้ว

      Этот класс не предполагается к использованию напрямую. Он имеет смысл только как базовый класс и закладывается на определённые действия которые делает производный.

  • @dimon_ksi
    @dimon_ksi ปีที่แล้ว

    Что будет, если в не основном потоке не поймано брошенное исключение?

    • @tilir
      @tilir  ปีที่แล้ว +2

      std terminate разумеется.