Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выход из программы в побочной нити, как это правильно сделать? 
:(
    Опции темы
Hogan
Дата 14.5.2007, 02:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 13.5.2007

Репутация: нет
Всего: нет



Подскажите, как можно завершить приложение, находясь в одной из побочных нитей. Не пойму,как толком  флаг применить.
PM MAIL   Вверх
batigoal
Дата 14.5.2007, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Я полагаю, System.exit(0) прервёт выполнение программы из любого потока, но о кошерности такого подхода можно спорить.

Другой вариант - в главном потоке циклически проверять какой-нибудь флаг, который и изменять из "побочного". Т.е. главный поток представляет собой цикл while(flag).


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
chief39
Дата 14.5.2007, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Лучше реализовать одну кошерную точку выхода.
Например, в главном треде, реализовать механизм, который в любой ситуации способен разрулить все нити и правильно их завершить, а потом и убиться апстену самостоятельно.

Все остальные нити должны идти только через этот выход.

Способ уведомления  - это уже другой выбор:
Можно флаг как batigoal грит - нить говорит что "всё, хватит, наработалась" и не только она одна может так сказать - тогда главная(или спец. контролирующая) нить осматривает всех пациентов на предмет нежелания работать и выходит из системы всё корректно завершив или забивает на такое пожелание поднити(рано ещё, сиди тихо.) Процесс выхода реализован в одной точке и, гарантированно правильный, а не свой у каждого.

А можно в каждую поднить передавать ссылку на главную(или контролирующую). Тогда это будет не поллинг постоянный, а прямая точка входа для любой нити, сообщить контроллирующей - "эй, начальнег, пора бы и на перекур". Но, опять-таки, завершения и выходы все делает главная(или ответственная за координацию всех) нить


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
diablero
Дата 15.5.2007, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 1
Всего: 5



 shutdown-ловушку поставь и коректно сможешь обрабатывать выход из программы.
Прочитать можно тут


--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0893 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.