
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
19.10.2014, 12:09
|
|||
|---|---|---|---|
Deadlock |
|||
|
#18+
Всем привет, Объясните плиз почему может возникнуть deadlock в такой ситуации: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.10.2014, 12:58
|
|||
|---|---|---|---|
Deadlock |
|||
|
#18+
Adva, Не до конца понятно с того поста. Т.е. когда поток будет выполнять doSmth() у класса Child он захватит монитор у объекта класса Child, которому также доступны методы класса Parent и соответственно он захватит монитор класса Parent. При выполнении super.doSmth() мы попытаемся получить монитор который был уже захвачен текущим объектом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.10.2014, 14:36
|
|||
|---|---|---|---|
Deadlock |
|||
|
#18+
YamahaR1 , Кто вам сказал, что в данной ситуации возможен deadlock? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.10.2014, 19:58
|
|||
|---|---|---|---|
|
|||
Deadlock |
|||
|
#18+
YamahaR1Объясните плиз почему может возникнуть deadlock в такой ситуации: Данный код слабо связан с дедлоком. Для возникновения взаимоблокировки нужны минимум два потока и два критических ресурса. Если создать 2 экземпляра приведенных классов, то можно используя их заблокировать два потока. К наследованию это отношения не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.10.2014, 00:32
|
|||
|---|---|---|---|
Deadlock |
|||
|
#18+
cdtyjv, это пример из книги и подписан он таким образом: Code that would Deadlock if Intrinsic Locks were Not Reentrant. Blazkowicz, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.10.2014, 00:44
|
|||
|---|---|---|---|
|
|||
Deadlock |
|||
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.10.2014, 03:38
|
|||
|---|---|---|---|
|
|||
Deadlock |
|||
|
#18+
YamahaR1это пример из книги и подписан он таким образом: Code that would Deadlock if Intrinsic Locks were Not Reentrant Ох уж мне эти писатели книжек. Как можно пугать неокрепшие умы мифическими "если бы", не имеющими отношение к жизни. В такой манере можно много понаписать страшилок "что бы было бы, если бы у бабушки...." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.10.2014, 09:11
|
|||
|---|---|---|---|
|
|||
Deadlock |
|||
|
#18+
YamahaR1cdtyjv, это пример из книги и подписан он таким образом: Code that would Deadlock if Intrinsic Locks were Not Reentrant. Blazkowicz, спасибо. Гениальная книга. Вот только в Java - synchronized это Reentrant Lock. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.10.2014, 06:41
|
|||
|---|---|---|---|
|
|||
Deadlock |
|||
|
#18+
YamahaR1подписан он таким образом: Code that would Deadlock if Intrinsic Locks were Not Reentrant. Проблема не в Java, а с английским. Правельный перевод: "Код, который вызывал бы блокировку если синхронизация не допускала повторного вхождения" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2126421]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
204ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 535ms |

| 0 / 0 |
