![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Antropoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 786 Регистрация: 1.6.2006 Где: &Ukraine==Ode ssa Репутация: 2 Всего: 16 |
Если сделать interrupt() треду, залочившему объект, снимется ли лок?
-------------------- ![]() Задыхаясь от восторга заниматься чепухой. |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
||||
|
||||
| Antropoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 786 Регистрация: 1.6.2006 Где: &Ukraine==Ode ssa Репутация: 2 Всего: 16 |
interrupt(), - метод непредсказуемый, поэтому решил поинтересоваться у людей...
-------------------- ![]() Задыхаясь от восторга заниматься чепухой. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Если поток вызвал wait(), то он уже потерял блокировку на объект.
И вообще по выходу из блока synchronized, все блокировки освобождаются (не важно как произошел выход, "нормально" или по Exception-у). -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Antropoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 786 Регистрация: 1.6.2006 Где: &Ukraine==Ode ssa Репутация: 2 Всего: 16 |
А что если тред, залочивший объект, все еще выполняется - создает сетевое соединение, используя блокирующую функцию?
-------------------- ![]() Задыхаясь от восторга заниматься чепухой. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Так на IO процессах, тред не блокирует никаких объектов (явно во всяком случае).
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Antropoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 786 Регистрация: 1.6.2006 Где: &Ukraine==Ode ssa Репутация: 2 Всего: 16 |
Я говорю о неявной блокировке. Тред залочивает объект и создает сетевое соединение - в этот момент делаем треду interrupt(). Снимется ли лок?
-------------------- ![]() Задыхаясь от восторга заниматься чепухой. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Еще раз: 1. Если мы вызвали wait() у объекта на который у нас есть блокировка, то мы эту блокировку сразу и освободили. 2. Если мы выйдем из блока synchronized, то мы освобождаем блокировку. При этом неважно как мы оттуда вышли по return, или по InterruptedException, или еще как. 3. Если код связанный с обслуживанием IO операций использует, для блокировок механизмы Java, то блокировки будут освобождены по причинам описаным выше. Если код использует native блокировки, то это уже проблема создателей JVM, сделать так чтобы не было дедлоков. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |