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

  Рет қаралды 10,239

Sergey Arkhipov Java Tutorials

Sergey Arkhipov Java Tutorials

Күн бұрын

Пікірлер
@НикитаКорнюхин-я6щ
@НикитаКорнюхин-я6щ 8 ай бұрын
Приятно смотреть, когда простыми словами объясняют такую тему, как многопоточность! Спасибо!
@evagor730
@evagor730 Жыл бұрын
Прекрасное объяснение и примеры! Я бы добавила хоть пару слов о том, зачем вообще нужны вложенные мьютексы (когда обойтись единственным блоком синхронизации будет плохим решением). Это не сложно, но для тех, кто только начал разбираться в многопоточности, будет дополнительным подспорьем. А вообще отличное видео!
@НикитаСологуб-щ3ц
@НикитаСологуб-щ3ц 10 ай бұрын
Круто! Спасибо большое за объяснения!
@Svyat911
@Svyat911 2 жыл бұрын
Спасибо,!!! Как раз на курсах такая домашняя задача, все кумекал....
@alexandr6055
@alexandr6055 Жыл бұрын
Как успехи, прошел год. Работаете уже?
@Svyat911
@Svyat911 Жыл бұрын
@@alexandr6055 вітаю, ні захищаю Україну в збройних силах
@MrMor94ok
@MrMor94ok 2 жыл бұрын
Спасибо,сейчас как раз изучаю многопоточность в java
@alexandr6055
@alexandr6055 Жыл бұрын
Как успехи, прошел год. Работаете уже?
@Privet_medved
@Privet_medved Жыл бұрын
а я сейчас ее изучаю=)
@mikhailazarka6007
@mikhailazarka6007 Жыл бұрын
Спасибо, очень понятно объясняешь
@sergiytychkin
@sergiytychkin 2 жыл бұрын
Спасибо за видео! Сразу лайк.
@tedikvredik
@tedikvredik 2 жыл бұрын
Сергей, за видео спасибо! Тоже не написал бы на собесе сам. На 1:06 мАнитор - опечатка )
@beerbis
@beerbis 2 жыл бұрын
дедлоки чаще прочего видят те кто с бд работает. ты в транзакции, ты читаешь что тебе нужно в каком-то порядке, те же банковские счета пусть будут,- появляется нагрузка - ПАМ-ПАМ - дедлок. Исключение от MSSQL так и стоит перед глазами: you were chosen as a deadlock victim
@yushchenkoalexey
@yushchenkoalexey 2 жыл бұрын
Спасибо!
@hestonli6602
@hestonli6602 2 жыл бұрын
Супер ,спасибо за видео 👍
@namefamily957
@namefamily957 2 жыл бұрын
Хорошая и нужная тема :)
@romawar1869
@romawar1869 2 жыл бұрын
как всегда интересно и доступно
@stasevich741
@stasevich741 2 жыл бұрын
как раз у шилдта сегодня про это читал
@namefamily957
@namefamily957 2 жыл бұрын
Я в windows сталкивался с зависание , но там на С писалось и логика была далека от идеала:)
@ukr-pig
@ukr-pig Ай бұрын
Привет.А можешь подсказать что происходит внутри sinhronized{ } ?
@arhitutorials
@arhitutorials Ай бұрын
Ничего не происходит. Просто чтоб зайти в этот блок, потоку нужно захватить монитор. Монитор может держать только один поток. Таким образом, код в блоке synchronized может выполняться только одним потоком, который в данный момент владеет монитором.
@LAZIO14
@LAZIO14 Жыл бұрын
Спасибо. А вот эти дедушки могут быть причины багов в работах приложений, веб-сервисов?
@natalieastafeva4885
@natalieastafeva4885 2 жыл бұрын
Такой вопрос, а если в handle для какого-нибудь третьего потока передать resources.get(1),resources.get(2) разве у нас опять все не сломается в дедлок?
@arhitutorials
@arhitutorials 2 жыл бұрын
Не сломается. Поток дождется, пока ресурсы освободятся, захватит нужные локи и сделает свое дело.
@nothingextrachannel
@nothingextrachannel 2 жыл бұрын
Так deadLock не получается, после sleepa поток отпустит монитор, и все потоки доработают как положено
@arhitutorials
@arhitutorials 2 жыл бұрын
В Java выполнение sleep() не отпускает монитор. По этому картина следующая: первый поток запускается, захватывает монитор, останавливается на sleep. Второй поток запускается, захватывает свой первый монитор, а второй захватить не может, так как его удерживает первый поток. Первый поток возобновляет работу после sleep, но свой второй монитор так же не может захватить, так как его удерживает второй поток.
@vp4282
@vp4282 2 жыл бұрын
А разве не должен весь этот код быть разложен по разным файлам
@arhitutorials
@arhitutorials 2 жыл бұрын
Если по фэншую все делать, то должен) Но для примера кода лучше наоборот все в одну кучу сгрести. Тем, кто будет смотреть исходный код по ссылке, проще в один файл посмотреть и все сразу увидеть, чем бегать по разным.
@vp4282
@vp4282 2 жыл бұрын
Понял, спасибо за быстрый ответ
@Яго-ж2в
@Яго-ж2в 2 ай бұрын
Вот вам простой пример из жизни: Джуна не берут никуда без опыта. Опыт Джун нигде не может взять, потому что его никто не берёт. Не благодарите😂
@arhitutorials
@arhitutorials 2 ай бұрын
Нужно сделать себе опыт. Не знаю как в бэкэндовой java, но в android разработке это возможно, потому что любой может сделать приложение, выложить его на маркет и демонстрировать в качестве опыта работы. Нужно сделать пару нормальных приложений с исходниками на гитхабе, и можно пробовать устраиваться. У меня есть несколько знакомых, которые таким образом зашли в профессию. Знаю, так как сам их консультировал)
Java. Лямбда-выражения.
23:47
Sergey Arkhipov Java Tutorials
Рет қаралды 36 М.
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 81 МЛН
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН
Java. Multithreading. Wait and Notify methods. Blocking Queue and Worker Thread.
8:12
Sergey Arkhipov Java Tutorials
Рет қаралды 18 М.
Java. Распараллеливаем вычисления на пуле потоков.
21:37
Тестовое задание Сбер Java Многопоточность
12:53
Петр Арсентьев
Рет қаралды 9 М.
Java. Стирание типов.
14:07
Sergey Arkhipov Java Tutorials
Рет қаралды 16 М.
Выпуск 35. Как работает ForkJoinPool.
23:44
Изучаем Java
Рет қаралды 8 М.
Java. Об Iterator и Iterable c примерами.
16:20
Sergey Arkhipov Java Tutorials
Рет қаралды 25 М.
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН