#19 Многопоточность - lock, Monitor, Mutex, Semaphore. Ответ на вопрос собеседования C# / .Net

Поділитися
Вставка
  • Опубліковано 17 січ 2025

КОМЕНТАРІ • 24

  • @ivandemidov5081
    @ivandemidov5081 3 роки тому +6

    Большое спасибо, за данные видео

    • @AndreyShyrokoriadov
      @AndreyShyrokoriadov  3 роки тому +3

      Подписывайтесь на канал, в планах выпускать как минимум одно видео каждую неделю.

    • @ALEXANDER47477
      @ALEXANDER47477 2 роки тому

      ​@@AndreyShyrokoriadov Здравствуйте! Спасибо Вам за видео! и еще....вот я хочу разобраться с тем какие коллекции есть в с#. у всех разные преимущества недостатки в скорости, потребляемой памяти при проведении определенных операций (добавление, удаление, поиск в коллекции, сравнение элемента и т.п.)... а также в зависимости от размеров обрабатываемых данных. посоветуйте источник (статью на сайте, книгу, видео) где очень подробно, ясно и наглядно можно прочувствовать эти особенности. а также предлагаю и Вам записать видео по данной теме!)

  • @randomize4097
    @randomize4097 3 роки тому +8

    Lock в try finally разворачивается

  • @АлексСандр-щ8л
    @АлексСандр-щ8л 2 роки тому +2

    Спасибо за Ваши видео, они сильно помогают заполнять некоторые пробелы. Вот чего мне в этом видео не хватило - рекомендаций когда использовать тот или иной подход.
    Кроме того было потеряно пару важных аспектов:
    1) Есть возможность синхронизации с помощью AutoResetEvent. Возможно и не самый широко применяемый, но всё же есть.
    2) Возможность применения в синхронном и асинхронном коде. Например: В асинхронном коде lock вызовет ошибку SynchronizationLockException, а Mutex ApplicationException

  • @РНС_Саакашвили

    лайк поставил . . . спасибо за ОБЩИЙ ОБЗОР

  • @omsohumax
    @omsohumax Місяць тому

    Пожалуйста приведите пример синхроницации протокола на уровне ос. Не понимаю как это используется. Вот у нас есть приложение - процесс, в рамках процесса есть потоки которые надо синхронизировать, получается нужна синхронизация в рамках одной программы/процесса - тоесть нужны локи. А в каком контексте надо использовать синхронизации на уровне ос. Спасибо большое заранее!

  • @ФедорАргунов-р3я
    @ФедорАргунов-р3я 2 місяці тому

    Спасибо за видео. Прочитал в текущей документации ms насчёт Mutex, оказывается, что они бывают двух типов - локальный и именованный. Именованный виден всей системе, а локальный только процессу в котором он был создан. А есть ли варик использовать локальный Mutex вместо lock, так как он всё равно не виден другим процессам?

  • @mavezo6718
    @mavezo6718 Рік тому

    Вот как и в комментарии одном ниже, ваша лекция отлично подходит под заполнение пробелов)
    Когда на уроке изучал и теорию, и практику, и при себе уже имеешь пример кода -- такое закрепление материала прям отличное)
    Только после вашего видео тема, можно сказать, закреплялась полностью

  • @MrMihap
    @MrMihap 2 роки тому +1

    не могу не сделать замечание: под капотом у монитора на уровне clr используется spinWait и mutex. по умолчанию spinwait работает 10 итераций, после чего блокировка проваливается на mutex (уровень ядра).
    Тут важно понимать контекст работы программы и длительность блокировки а так же в какой среде исполняется программа, одно ядро, один многоядерный процесор, несколько многоядерных процессов + параметры квантования в целевой операционной системе. только так можно принять действительно правильное решение о том, какой блокировкой и как пользоваться.

  • @WP517i
    @WP517i 2 роки тому

    Спасибо!!!!!

  • @ivannebyshinets5682
    @ivannebyshinets5682 2 роки тому

    Отличное видео, спасибо!

  • @kl45gp
    @kl45gp 2 роки тому

    Хорошее объяснение.

  • @РусланЛи-б3х
    @РусланЛи-б3х 3 роки тому

    Thank you 😊

  • @iGynLoD
    @iGynLoD 3 роки тому +8

    Хорошо объясняете, но формат с листочком и ручкой смотреть крайне тяжело. На этапе объяснения и примеров с аналогиями еще можно понять, но писать код на листе - это какой-то зашквар в 2021-м.

    • @iGynLoD
      @iGynLoD 3 роки тому

      Предложил бы лучше формат, где основным изображением был бы экран VisualStudio, а рисунки на от руки на маленьком экране справа внизу.

    • @volodymyrmatselyukh8808
      @volodymyrmatselyukh8808 3 роки тому

      ++. ище ручка то какая мощьная. постоянно отвлекался на бумажку :)

    • @evgeny.siberian
      @evgeny.siberian 2 роки тому +2

      Учитывая распространенную практику собеседований, когда код пишется на бумаге или доске, наоборот отличный формат!

    • @iGynLoD
      @iGynLoD 2 роки тому +1

      @@evgeny.siberian я бы отказался это делать, и всем советую. Я учился в 90-е, и тогда это ещё можно было понять. Сейчас - это бред. Зачем это нужно?

    • @hop173
      @hop173 2 роки тому

      @@evgeny.siberian когда вы последний раз собеседования проходили?) уже года 2-3 точно используютя online IDE'шки

  • @mamontoff3276
    @mamontoff3276 3 роки тому

    Спасибо! :)

  • @vm7738
    @vm7738 2 роки тому

    Спасибо!