Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как не reentrancy ведет к дедлоку? / 8 сообщений из 8, страница 1 из 1
08.02.2017, 19:14
    #39401207
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не reentrancy ведет к дедлоку?
Решил таки осилить 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 мне понятно - это способность войти в секцию, которая находится под уже захваченным монитором.
...
Рейтинг: 0 / 0
08.02.2017, 20:51
    #39401247
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не reentrancy ведет к дедлоку?
questioner
или просто я в терминологии не силён. Думал дедлок это как минимум 2 потока.



Дэдлок это не "как минимум 2 потока.", а: situation in which no progress can be made.

questionerЧто такое Reentrancy мне понятно - это способность войти в секцию, которая находится под уже захваченным монитором.
Ну и в чем вопрос тогда? Представь рекурсивный алгоритм.
...
Рейтинг: 0 / 0
08.02.2017, 20:53
    #39401249
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не reentrancy ведет к дедлоку?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public void nonreetnrantsynchronized methodA() {
    methodB(); //deadlock
    methodA(); //deadlock
}

public void nonreetnrantsynchronized methodB() {

}
...
Рейтинг: 0 / 0
09.02.2017, 00:43
    #39401326
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не reentrancy ведет к дедлоку?
забыл никquestionerили просто я в терминологии не силён. Думал дедлок это как минимум 2 потока.



Дэдлок это не "как минимум 2 потока.", а: situation in which no progress can be made.



ну если мы вызвали в synchronized wait() вызовем это тоже дедлок? в дампе это будет написано?

ну или whilie(true){}
...
Рейтинг: 0 / 0
09.02.2017, 00:46
    #39401329
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не reentrancy ведет к дедлоку?
questionerзабыл никпропущено...


Дэдлок это не "как минимум 2 потока.", а: situation in which no progress can be made.



ну если мы вызвали в synchronized wait() вызовем это тоже дедлок? в дампе это будет написано?

ну или whilie(true){}

В java все локи reentrant, я не понимаю ваш вопрос
...
Рейтинг: 0 / 0
09.02.2017, 00:52
    #39401331
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не reentrancy ведет к дедлоку?
забыл никquestionerпропущено...


ну если мы вызвали в synchronized wait() вызовем это тоже дедлок? в дампе это будет написано?

ну или whilie(true){}

В java все локи reentrant, я не понимаю ваш вопрос

Свёлся к тому, что называть дедлоком
...
Рейтинг: 0 / 0
09.02.2017, 09:49
    #39401404
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не reentrancy ведет к дедлоку?
questionerСвёлся к тому, что называть дедлоком
Взаимная блокировка. Для нее необходимым (но не достаточным) условием является требование, чтобы множество тех кто борется за ресурсы было не пустым.
...
Рейтинг: 0 / 0
14.02.2017, 13:26
    #39404100
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не reentrancy ведет к дедлоку?
забыл никquestionerпропущено...


ну если мы вызвали в synchronized wait() вызовем это тоже дедлок? в дампе это будет написано?

ну или whilie(true){}

В java все локи reentrant, я не понимаю ваш вопрос

Вот вычитал, что Semaphore не reentrant.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как не reentrancy ведет к дедлоку? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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