![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Joil |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
Возник следующий вопрос...
допустим есть класс:
понятно, что если написать что нибудь такое:
то есть вероятность что в процессе работы активизируется сборщик и съест объект... но если написать вот так:
то возможно ли поедание сборщиком этого объекта?? Вроде как ссылки на него нет... но он что то делает... --------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
||||||
|
|||||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
не скушает
|
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
Joil, а чо разве эта программа будет висеть "вечно"? по мне так она тут же завершиться, тк нет никакого ожидания завершения потока. Или я ошибась?
Это сообщение отредактировал(а) chaos - 27.3.2009, 14:57 |
|||
|
||||
| Joil |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
SoulKeeper, спасибо... а после остановки потока?
Добавлено @ 15:03 chaos.... не, я просто предполагал, что программа не завершается.... не дописал... т. е. после new Example(); еще какой нибудь while (true)... Это сообщение отредактировал(а) Joil - 27.3.2009, 15:06 --------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
понял. я пока просто учусь |
|||
|
||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
После остановки должен бы.
Это сообщение отредактировал(а) SoulKeeper - 27.3.2009, 15:07 |
|||
|
||||
| Joil |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
Все понятно, логично... всем спасибо
--------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
|||
|
||||
| Shurr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 24.10.2006 Репутация: 5 Всего: 7 |
Joil
Ссылки только "вроде как" нет, т.е. в данном конкретном коде ее нет. При создании инстанса Thread он в своем конструкторе регистрируется в ThreadGroup. Соответственно живая ссылка на Thread есть, и сборщик мусора его не трогает. После завершения своей работы Thread удаляет ссылку на себя из ThreadGroup, и тогда, если в клиентском коде ссылок на него нет - он попадает под сборку мусора. Кстати, по этому поводу есть небольшой хинт: т.к. регистрация происходит в конструкторе Thread, то созданные, но не запущенные Thread'ы без дополнительных телодвижений не попадают под сборку мусора, и, как следствие, могут стать причиной утечек памяти. |
|||
|
||||
| Joil |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
Shurr спасибо... все понятно
--------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
|||
|
||||
| chaos |
|
||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
тут как раз читаю главу про потоки. написал тестовый пример:
программа не завершается пока поток не отработает. Сюрприз однако - в С++ бы завершился бы |
||||
|
|||||
| powerOn |
|
||||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Ничего странного, все по спеке. VM будет работать пока хотя бы один поток не демон еще выполяется. Попробуй так:
|
||||
|
|||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
ага, ничего странного. пока не почитал |
|||
|
||||
![]()
|
| Правила форума "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. |