![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Hogan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.5.2007 Репутация: нет Всего: нет |
Подскажите, как можно завершить приложение, находясь в одной из побочных нитей. Не пойму,как толком флаг применить.
|
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Я полагаю, System.exit(0) прервёт выполнение программы из любого потока, но о кошерности такого подхода можно спорить.
Другой вариант - в главном потоке циклически проверять какой-нибудь флаг, который и изменять из "побочного". Т.е. главный поток представляет собой цикл while(flag). -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
Лучше реализовать одну кошерную точку выхода.
Например, в главном треде, реализовать механизм, который в любой ситуации способен разрулить все нити и правильно их завершить, а потом и убиться апстену самостоятельно. Все остальные нити должны идти только через этот выход. Способ уведомления - это уже другой выбор: Можно флаг как batigoal грит - нить говорит что "всё, хватит, наработалась" и не только она одна может так сказать - тогда главная(или спец. контролирующая) нить осматривает всех пациентов на предмет нежелания работать и выходит из системы всё корректно завершив или забивает на такое пожелание поднити(рано ещё, сиди тихо.) Процесс выхода реализован в одной точке и, гарантированно правильный, а не свой у каждого. А можно в каждую поднить передавать ссылку на главную(или контролирующую). Тогда это будет не поллинг постоянный, а прямая точка входа для любой нити, сообщить контроллирующей - "эй, начальнег, пора бы и на перекур". Но, опять-таки, завершения и выходы все делает главная(или ответственная за координацию всех) нить -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
diablero |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 1 Всего: 5 |
-------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |