powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как не reentrancy ведет к дедлоку?
8 сообщений из 8, страница 1 из 1
Как не reentrancy ведет к дедлоку?
    #39401207
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил таки осилить 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
Как не reentrancy ведет к дедлоку?
    #39401247
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner
или просто я в терминологии не силён. Думал дедлок это как минимум 2 потока.



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

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

public void nonreetnrantsynchronized methodB() {

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



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



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

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


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



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

ну или whilie(true){}

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


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

ну или whilie(true){}

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

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


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

ну или whilie(true){}

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

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


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