Java. Многопоточность. Как устроить Deadlock.

Sdílet
Vložit
  • čas přidán 19. 01. 2022
  • В данном видео рассказывается о том, что такое Deadlock, и как намеренно создать взаимную блокировку потоков на языке программирования Java.
    Исходники:
    github.com/Arhiser/java_tutor...
    Предыдущее видео этой серии:
    • Java. Многопоточность....
    Поддержать канал💰:
    Рублями:
    yoomoney.ru/to/410018856244871
    Гривной: 5457 0822 7391 6895
    privatbank.ua/ru/sendmoney
    Группа в Telegram:
    t.me/ArhiTutorials
    #ArhiTutorialsJava #ityoutubersru

Komentáře • 27

  • @user-ti7wk4qt6s
    @user-ti7wk4qt6s Před 2 měsíci +1

    Приятно смотреть, когда простыми словами объясняют такую тему, как многопоточность! Спасибо!

  • @evagor730
    @evagor730 Před rokem +3

    Прекрасное объяснение и примеры! Я бы добавила хоть пару слов о том, зачем вообще нужны вложенные мьютексы (когда обойтись единственным блоком синхронизации будет плохим решением). Это не сложно, но для тех, кто только начал разбираться в многопоточности, будет дополнительным подспорьем. А вообще отличное видео!

  • @beerbis
    @beerbis Před 2 lety +5

    дедлоки чаще прочего видят те кто с бд работает. ты в транзакции, ты читаешь что тебе нужно в каком-то порядке, те же банковские счета пусть будут,- появляется нагрузка - ПАМ-ПАМ - дедлок.
    Исключение от MSSQL так и стоит перед глазами: you were chosen as a deadlock victim

  • @hestonli6602
    @hestonli6602 Před 2 lety

    Супер ,спасибо за видео 👍

  • @romawar1869
    @romawar1869 Před 2 lety

    как всегда интересно и доступно

  • @namefamily957
    @namefamily957 Před 2 lety

    Хорошая и нужная тема :)

  • @yushchenkoalexey
    @yushchenkoalexey Před 2 lety

    Спасибо!

  • @sergiytychkin
    @sergiytychkin Před 2 lety

    Спасибо за видео! Сразу лайк.

  • @mikhailazarka6007
    @mikhailazarka6007 Před rokem

    Спасибо, очень понятно объясняешь

  • @user-se4gg9sk4b
    @user-se4gg9sk4b Před 4 měsíci

    Круто! Спасибо большое за объяснения!

  • @tedikvredik
    @tedikvredik Před 2 lety

    Сергей, за видео спасибо! Тоже не написал бы на собесе сам. На 1:06 мАнитор - опечатка )

  • @Svyat911
    @Svyat911 Před 2 lety +1

    Спасибо,!!! Как раз на курсах такая домашняя задача, все кумекал....

    • @alexandr6055
      @alexandr6055 Před rokem +1

      Как успехи, прошел год. Работаете уже?

    • @Svyat911
      @Svyat911 Před rokem +1

      @@alexandr6055 вітаю, ні захищаю Україну в збройних силах

  • @stasevich741
    @stasevich741 Před 2 lety +1

    как раз у шилдта сегодня про это читал

  • @MrMor94ok
    @MrMor94ok Před 2 lety +1

    Спасибо,сейчас как раз изучаю многопоточность в java

    • @alexandr6055
      @alexandr6055 Před rokem +1

      Как успехи, прошел год. Работаете уже?

    • @Privet_medved
      @Privet_medved Před rokem

      а я сейчас ее изучаю=)

  • @namefamily957
    @namefamily957 Před 2 lety

    Я в windows сталкивался с зависание , но там на С писалось и логика была далека от идеала:)

  • @anjelomanoranjan
    @anjelomanoranjan Před 11 měsíci

    Спасибо. А вот эти дедушки могут быть причины багов в работах приложений, веб-сервисов?

  • @natalieastafeva4885
    @natalieastafeva4885 Před 2 lety

    Такой вопрос, а если в handle для какого-нибудь третьего потока передать resources.get(1),resources.get(2) разве у нас опять все не сломается в дедлок?

    • @arhitutorials
      @arhitutorials  Před 2 lety +1

      Не сломается. Поток дождется, пока ресурсы освободятся, захватит нужные локи и сделает свое дело.

  • @nothingextrachannel
    @nothingextrachannel Před 2 lety

    Так deadLock не получается, после sleepa поток отпустит монитор, и все потоки доработают как положено

    • @arhitutorials
      @arhitutorials  Před 2 lety +7

      В Java выполнение sleep() не отпускает монитор. По этому картина следующая:
      первый поток запускается, захватывает монитор, останавливается на sleep. Второй поток запускается, захватывает свой первый монитор, а второй захватить не может, так как его удерживает первый поток. Первый поток возобновляет работу после sleep, но свой второй монитор так же не может захватить, так как его удерживает второй поток.

  • @vp4282
    @vp4282 Před 2 lety

    А разве не должен весь этот код быть разложен по разным файлам

    • @arhitutorials
      @arhitutorials  Před 2 lety +1

      Если по фэншую все делать, то должен) Но для примера кода лучше наоборот все в одну кучу сгрести. Тем, кто будет смотреть исходный код по ссылке, проще в один файл посмотреть и все сразу увидеть, чем бегать по разным.

    • @vp4282
      @vp4282 Před 2 lety

      Понял, спасибо за быстрый ответ