JavaRush /Курсы /Java Multithreading /Задачи по написанию своих дедлоков

Задачи по написанию своих дедлоков

Java Multithreading
7 уровень, 4 лекция
Открыта

— Привет, Амиго!

8
Задача
Java Multithreading, 7 уровень, 4 лекция
Недоступна
Создаем deadlock
Создаем deadlock
8
Задача
Java Multithreading, 7 уровень, 4 лекция
Недоступна
Второй вариант deadlock
Второй вариант deadlock
8
Задача
Java Multithreading, 7 уровень, 4 лекция
Недоступна
Модификаторы и deadlock
Модификаторы и deadlock
Комментарии (54)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
evggenn Уровень 48
19 декабря 2025
во второй задаче ответ прошел, но это не гарантированная блокировка, а формальная. Чат гпт мне все рассказал). Дедлок — это не просто "разный порядок локов", а "разный порядок + одновременное удержание первого лока" В твоём коде нет гарантии, что: поток 1 держит this И ждёт lock поток 2 держит lock И ждёт this Они могут так совпасть, но чаще — не совпадают по времени. Т.е. для гарантированного дэдлока нужно вмешаться в процесс тайминга

while (!Thread.holdsLock(this)) {
                Thread.yield();
            }
Т.е. без этого, как я понял, jvm так будет разрулировать потоками, что первый поток может сразу успеть захватить обе блокировки и потом отпустить их и все будет ок.
Юрій Якимчук Уровень 33
7 марта 2024
— Розкажіть, що таке дедлок, і ми беремо вас на роботу — Візьміть мене на роботу, тоді розповім
7 сентября 2023
я понял, что я ничего не понял...
Grock Уровень 44
16 сентября 2023
Если не спешить и разобраться что куда идет, то все встает на свои места.
wokku Уровень 51
20 августа 2023
Отличные задачи🤙
Marta Kravchenko Уровень 35
7 февраля 2023
Я правильно понимаю, что во второй задаче deadlock возникнет только если две нити будут работать с одним(!) экземпляром класса Solution? в отличии от первой задачи, где две нити работают с двумя экземплярами
10 апреля 2024
Да, пришлось прийти к этому самому
1 октября 2024
А я то думал просто скопипастили задачу, спасибо
15 августа 2025
А как проверили, что дедлок реально возникает? Поставили взаимные вызовы методов, а что в main написали? У меня и с одним объектом Solution не возникает никакой блокировки.
22 октября 2022
Начинайте решение с третьей задачи - там все просто и понятно и к тому же есть возможность, посмотреть к deadlock выглядит в действии
Igor Petrashevsky Уровень 47
22 июня 2022
мучаешься, разбираешь исходник, потом читаешь задание и вот оно решение, под носом
LuneFox Уровень 41 Expert
7 октября 2021
Замечательно! Если мы знаем, как именно мы что-то сломали, то мы точно знаем, что именно надо починить.
Valua Sinicyn Уровень 41
8 января 2021
Две из трех задач, про драку и дружбу двух котов.
Pig Man Уровень 41
22 декабря 2020
Понял, что дэдлок я сам вряд ли увижу, хотя и знаю, что это..