powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Deadlock
11 сообщений из 11, страница 1 из 1
Deadlock
    #38780961
YamahaR1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет,

Объясните плиз почему может возникнуть deadlock в такой ситуации:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class Parent {
 public void synchronized doSmth() {
 }
} 

class Child extends Parent {
 public void synchronized doSmth() {
  super.doSmth();
 }
}
...
Рейтинг: 0 / 0
Deadlock
    #38780965
Adva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Deadlock
    #38780974
YamahaR1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adva,

Не до конца понятно с того поста. Т.е. когда поток будет выполнять doSmth() у класса Child он захватит монитор у объекта класса Child, которому также доступны методы класса Parent и соответственно он захватит монитор класса Parent. При выполнении super.doSmth() мы попытаемся получить монитор который был уже захвачен текущим объектом?
...
Рейтинг: 0 / 0
Deadlock
    #38781028
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YamahaR1 ,
Кто вам сказал, что в данной ситуации возможен deadlock?
...
Рейтинг: 0 / 0
Deadlock
    #38781219
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YamahaR1Объясните плиз почему может возникнуть deadlock в такой ситуации:

Данный код слабо связан с дедлоком. Для возникновения взаимоблокировки нужны минимум два потока и два критических ресурса.
Если создать 2 экземпляра приведенных классов, то можно используя их заблокировать два потока. К наследованию это отношения не имеет.
...
Рейтинг: 0 / 0
Deadlock
    #38781342
YamahaR1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv,

это пример из книги и подписан он таким образом: Code that would Deadlock if Intrinsic Locks were Not Reentrant.

Blazkowicz, спасибо.
...
Рейтинг: 0 / 0
Deadlock
    #38781344
Adva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YamahaR1,

тут смысл в том что объект один и тот же. И если поток зашел в фукцию объекта-потомка, то он сможет зайти и в родительскую функцию.
Например, здесь написано следующее:

Reentrant Synchronization

Recall that a thread cannot acquire a lock owned by another thread. But a thread can acquire a lock that it already owns. Allowing a thread to acquire the same lock more than once enables reentrant synchronization. This describes a situation where synchronized code, directly or indirectly, invokes a method that also contains synchronized code, and both sets of code use the same lock. Without reentrant synchronization, synchronized code would have to take many additional precautions to avoid having a thread cause itself to block.
...
Рейтинг: 0 / 0
Deadlock
    #38781368
_newcomer_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YamahaR1это пример из книги и подписан он таким образом: Code that would Deadlock if Intrinsic Locks were Not Reentrant
Ох уж мне эти писатели книжек. Как можно пугать неокрепшие умы мифическими "если бы", не имеющими отношение к жизни.
В такой манере можно много понаписать страшилок "что бы было бы, если бы у бабушки...."
...
Рейтинг: 0 / 0
Deadlock
    #38781438
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YamahaR1cdtyjv,
это пример из книги и подписан он таким образом: Code that would Deadlock if Intrinsic Locks were Not Reentrant.
Blazkowicz, спасибо.
Гениальная книга. Вот только в Java - synchronized это Reentrant Lock.
...
Рейтинг: 0 / 0
Deadlock
    #38782406
пролетевший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YamahaR1подписан он таким образом: Code that would Deadlock if Intrinsic Locks were Not Reentrant.
Проблема не в Java, а с английским. Правельный перевод: "Код, который вызывал бы блокировку если синхронизация не допускала повторного вхождения"
...
Рейтинг: 0 / 0
Deadlock
    #38782622
YamahaR1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пролетевший,

Я уже понял что лопухнулся, невниматильно прочитал, спс.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Deadlock
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]