![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
Может ли поток убить сам себя?
и как? |
|||
|
||||
skhilkov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 371 Регистрация: 11.4.2006 Где: TOMSK Репутация: 2 Всего: 7 |
Приходит в голову break из цикла ......
![]() -------------------- Кто понял жизнь, тот не спешит. |
|||
|
||||
ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
Из какого цыкла? Поток не цыкл... |
|||
|
||||
skhilkov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 371 Регистрация: 11.4.2006 Где: TOMSK Репутация: 2 Всего: 7 |
поток есть пока не выйдет из run(), обычно run() организован как цикл(либо бесонечный, либо выходящий по условию). Поэтому при выходе из цикла поток прекратит существование.
-------------------- Кто понял жизнь, тот не спешит. |
|||
|
||||
ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
Ты имеешь в виду что окончание run() равносильно Thread.Kill()?
Это сообщение отредактировал(а) ShurikA - 14.11.2006, 08:40 |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
||||
|
||||
skhilkov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 371 Регистрация: 11.4.2006 Где: TOMSK Репутация: 2 Всего: 7 |
ага, либо тебя убили, либо ты своей смертью умер.... но результат один )))
-------------------- Кто понял жизнь, тот не спешит. |
|||
|
||||
Sherst |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 26.10.2005 Репутация: нет Всего: 2 |
Поток прекратит работу, когда метод run() возвратит управление, а каких-то средств по принудительному завершению выполнения потока нет.
Можно конечно попытаться прервать поток с помощью метода interrupt но он всего лишь запрашивает возможность о прекращении выполнения потока. Когда вызывается данный метод для блокирующего объекта то работа методов wait() и sleep() завершается и генерится исключительная ситуация InterruptedException:
|
|||
|
||||
s8e8r8g8e |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 12.5.2006 Репутация: 1 Всего: 1 |
ага.. только более универсально return из run() делать, а не break, тогда вроде пофиг какая реализация этого run()
а вобще можно и о некоторых "устаревших" методах вспомнить убивающих поток, но это извращение т.к. сам поток может сделать и то что выше написано не прибегая к небезопасным вызовам. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Лучше не стоит, return гораздо безопасней. -------------------- 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. |
|||
|
||||
djGri |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 21.2.2005 Репутация: 1 Всего: 3 |
Почему не сделать так? (алгоритм и без синхронизации)
|
|||
|
||||
ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
То что я сделал:
- ловлю Exception в нутри потока - при этом каждый loop в нутри этого потока проверяет определённый обьект. - когда мне нужно убить поток - обнуляю обьект. - в catch сидит return. и усё. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
"Месье знает толк в извращениях!" ![]() |
|||
|
||||
ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
по какой то причине break не срабатывает. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Как так не срабатывает? ![]() Что на отладчике происходит? Код покажи. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |