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

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

Открыта

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

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, 11:11
во второй задаче ответ прошел, но это не гарантированная блокировка, а формальная. Чат гпт мне все рассказал). Дедлок — это не просто "разный порядок локов", а "разный порядок + одновременное удержание первого лока" В твоём коде нет гарантии, что: поток 1 держит this И ждёт lock поток 2 держит lock И ждёт this Они могут так совпасть, но чаще — не совпадают по времени. Т.е. для гарантированного дэдлока нужно вмешаться в процесс тайминга
while (!Thread.holdsLock(this)) {
                Thread.yield();
            }
Т.е. без этого, как я понял, jvm так будет разрулировать потоками, что первый поток может сразу успеть захватить обе блокировки и потом отпустить их и все будет ок.
Юрій Якимчук
Уровень 33
7 марта 2024, 16:47
— Розкажіть, що таке дедлок, і ми беремо вас на роботу — Візьміть мене на роботу, тоді розповім
7 сентября 2023, 05:43
я понял, что я ничего не понял...
Grock
Уровень 44
16 сентября 2023, 11:33
Если не спешить и разобраться что куда идет, то все встает на свои места.
wokku
Уровень 51
20 августа 2023, 10:59
Отличные задачи🤙
Marta Kravchenko
Уровень 35
7 февраля 2023, 16:17
Я правильно понимаю, что во второй задаче deadlock возникнет только если две нити будут работать с одним(!) экземпляром класса Solution? в отличии от первой задачи, где две нити работают с двумя экземплярами
10 апреля 2024, 09:16
Да, пришлось прийти к этому самому
Илюха Будущий ЮниорJava - стажёр в ASTON
1 октября 2024, 09:43
А я то думал просто скопипастили задачу, спасибо
15 августа 2025, 14:49
А как проверили, что дедлок реально возникает? Поставили взаимные вызовы методов, а что в main написали? У меня и с одним объектом Solution не возникает никакой блокировки.
22 октября 2022, 16:00
Начинайте решение с третьей задачи - там все просто и понятно и к тому же есть возможность, посмотреть к deadlock выглядит в действии
Igor Petrashevsky
Уровень 47
22 июня 2022, 15:36
мучаешься, разбираешь исходник, потом читаешь задание и вот оно решение, под носом
LuneFoxJava Developer в BIFITExpert
7 октября 2021, 16:24
Замечательно! Если мы знаем, как именно мы что-то сломали, то мы точно знаем, что именно надо починить.
Valua Sinicyn
Уровень 41
8 января 2021, 08:02
Две из трех задач, про драку и дружбу двух котов.
Pig ManГлавная свинья в Свинарнике
22 декабря 2020, 11:48
Понял, что дэдлок я сам вряд ли увижу, хотя и знаю, что это..