|
|
|
Как не reentrancy ведет к дедлоку?
|
|||
|---|---|---|---|
|
#18+
Решил таки осилить concurrency in practice? не понял фразу: concurrency in practiceReentrancy facilitates encapsulation of locking behavior, and thus simplifies the development of object-oriented concurrent code. Without reentrant locks, the very natural-looking code in Listing 2.7 , in which a subclass overrides a synchronized method and then calls the superclass method, would deadlock. Because the doSomething methods in Widget and LoggingWidget are both synchronized, each tries to acquire the lock on the Widget before proceeding. But if intrinsic locks were not reentrant, the call to super.doSomething would never be able to acquire the lock because it would be considered already held, and the thread would permanently stall waiting for a lock it can never acquire. Reentrancy saves us from deadlock in situations like this. Чот я не понял как у него дедлок на одном потоке получается? или просто я в терминологии не силён. Думал дедлок это как минимум 2 потока. Что такое Reentrancy мне понятно - это способность войти в секцию, которая находится под уже захваченным монитором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2017, 19:14 |
|
||
|
Как не reentrancy ведет к дедлоку?
|
|||
|---|---|---|---|
|
#18+
questioner или просто я в терминологии не силён. Думал дедлок это как минимум 2 потока. Дэдлок это не "как минимум 2 потока.", а: situation in which no progress can be made. questionerЧто такое Reentrancy мне понятно - это способность войти в секцию, которая находится под уже захваченным монитором. Ну и в чем вопрос тогда? Представь рекурсивный алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2017, 20:51 |
|
||
|
Как не reentrancy ведет к дедлоку?
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2017, 20:53 |
|
||
|
Как не reentrancy ведет к дедлоку?
|
|||
|---|---|---|---|
|
#18+
забыл никquestionerили просто я в терминологии не силён. Думал дедлок это как минимум 2 потока. Дэдлок это не "как минимум 2 потока.", а: situation in which no progress can be made. ну если мы вызвали в synchronized wait() вызовем это тоже дедлок? в дампе это будет написано? ну или whilie(true){} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 00:43 |
|
||
|
Как не reentrancy ведет к дедлоку?
|
|||
|---|---|---|---|
|
#18+
questionerзабыл никпропущено... Дэдлок это не "как минимум 2 потока.", а: situation in which no progress can be made. ну если мы вызвали в synchronized wait() вызовем это тоже дедлок? в дампе это будет написано? ну или whilie(true){} В java все локи reentrant, я не понимаю ваш вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 00:46 |
|
||
|
Как не reentrancy ведет к дедлоку?
|
|||
|---|---|---|---|
|
#18+
забыл никquestionerпропущено... ну если мы вызвали в synchronized wait() вызовем это тоже дедлок? в дампе это будет написано? ну или whilie(true){} В java все локи reentrant, я не понимаю ваш вопрос Свёлся к тому, что называть дедлоком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 00:52 |
|
||
|
Как не reentrancy ведет к дедлоку?
|
|||
|---|---|---|---|
|
#18+
questionerСвёлся к тому, что называть дедлоком Взаимная блокировка. Для нее необходимым (но не достаточным) условием является требование, чтобы множество тех кто борется за ресурсы было не пустым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 09:49 |
|
||
|
Как не reentrancy ведет к дедлоку?
|
|||
|---|---|---|---|
|
#18+
забыл никquestionerпропущено... ну если мы вызвали в synchronized wait() вызовем это тоже дедлок? в дампе это будет написано? ну или whilie(true){} В java все локи reentrant, я не понимаю ваш вопрос Вот вычитал, что Semaphore не reentrant. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2017, 13:26 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39401404&tid=2123151]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 404ms |

| 0 / 0 |
