powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Java и потоки
17 сообщений из 17, страница 1 из 1
Java и потоки
    #38165742
ShadowDamballah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как реализовать следующее и чем лучше:

- породить несколько потоков (задач), которые выполняют некую работу
- создать что-то типа менеджера/монитора, который через некоторое время будет проверять состояния потоков и если один из них умер (скажем произошла ошибка в таске), сообщал об этом, но не переставал опрашивать “выживших”
- менеджер должен иметь механизм, который терминирует все опрашиваемые таски.
...
Рейтинг: 0 / 0
Java и потоки
    #38165820
DoSOfRedRiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам стоит взглянуть на классы ThreadGroup и ThreadPoolExecutor. Первый, например, уже содержит удобные методы для мониторинга активных потоков.
Останавливать потоки можно с помощью метода interrupt(), либо предусмотреть свой алгоритм терминирования.
Есть даже deprecated метод stop(). О том, почему его не стоит использовать, можно почитать здесь http://docs.oracle.com/javase/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html
...
Рейтинг: 0 / 0
Java и потоки
    #38166249
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiverВам стоит взглянуть на классы ThreadGroup и ThreadPoolExecutor. Первый, например, уже содержит удобные методы для мониторинга активных потоков.
Останавливать потоки можно с помощью метода interrupt(), либо предусмотреть свой алгоритм терминирования.
Есть даже deprecated метод stop(). О том, почему его не стоит использовать, можно почитать здесь http://docs.oracle.com/javase/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html
ThreadGroup давно не рекомендован к употреблению, потоки нельзя остановить вызвав метод interrupt(), этим методом можно только выразить желание чтобы поток остановился, про метод stop() вообще зря упоминали:) Ну а так да PoolExecutor поможет ТС
...
Рейтинг: 0 / 0
Java и потоки
    #38167017
DoSOfRedRiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

Ну, насколько я знаю, зависший поток вообще нельзя безопасно остановить.
...
Рейтинг: 0 / 0
Java и потоки
    #38167019
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiverНу, насколько я знаю, зависший поток вообще нельзя безопасно остановить.
Чейта? Если поток бесконечным циклом занят, то да. А если он заблокирован на локе или на IO, то interrupt-ом чудесно выкидывается исключение и обрабатывается.
...
Рейтинг: 0 / 0
Java и потоки
    #38167072
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, тут больше в другом проблема. Если он выполняется где-то в дебрях нативного кода, то прибить процесс может только ос, а ОС не придумали механизма корректного прибивания процессов.
...
Рейтинг: 0 / 0
Java и потоки
    #38167079
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chabapokимхо, тут больше в другом проблема. Если он выполняется где-то в дебрях нативного кода, то прибить процесс может только ос, а ОС не придумали механизма корректного прибивания процессов.
"процесс"-то тут при чем?
...
Рейтинг: 0 / 0
Java и потоки
    #38167081
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShadowDamballahПодскажите, как реализовать следующее и чем лучше:

- породить несколько потоков (задач), которые выполняют некую работу
- создать что-то типа менеджера/монитора, который через некоторое время будет проверять состояния потоков и если один из них умер (скажем произошла ошибка в таске), сообщал об этом, но не переставал опрашивать “выживших”
- менеджер должен иметь механизм, который терминирует все опрашиваемые таски.
По-моему тут как раз надо не потоками оперировать. А тасками - см. Future/Callable. И хорошо бы определится, что такое "умер" и какая именно "ошибка"? Обработка исключений в Future/Callable нормально реализована.
...
Рейтинг: 0 / 0
Java и потоки
    #38167085
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chabapokимхо, тут больше в другом проблема. Если он выполняется где-то в дебрях нативного кода, то прибить процесс может только ос, а ОС не придумали механизма корректного прибивания процессов.
Да. У нас была ситуация когда потоки обслуживающие сокеты
впадали в коматоз и прибить их средствами java было невозможно.
Как результат - аварийный ребут JBoss-а со всеми аппликейшенами.
...
Рейтинг: 0 / 0
Java и потоки
    #38167165
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, тут больше в другом проблема. Если он выполняется где-то в дебрях нативного кода, то прибить процесс может только ос, а ОС не придумали механизма корректного прибивания процессов.

Вообще-то придумали - сигналы.
...
Рейтинг: 0 / 0
Java и потоки
    #38167199
DoSOfRedRiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Ну, собственно, о том и речь. Блокирование зависанием обзывать не корректно, на мой взгляд.
...
Рейтинг: 0 / 0
Java и потоки
    #38167219
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiverНу, собственно, о том и речь. Блокирование зависанием обзывать не корректно, на мой взгляд.
Про "зависания" вы же первый и упомянули. У автора темы только про ошибки.
Взаимоблокировки и IO самые распространенные причины "зависания". Бесконечные циклы достаточно большая редкость. Вы какие-то ещё "зависания" знаете? GС паузы?
...
Рейтинг: 0 / 0
Java и потоки
    #38167951
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор"процесс"-то тут при чем?
Сорри, речь шла конечно о потоках.

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

авторВообще-то придумали - сигналы.
а как сигналом можно остановить поток?
...
Рейтинг: 0 / 0
Java и потоки
    #38168011
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДа. У нас была ситуация когда потоки обслуживающие сокеты
впадали в коматоз и прибить их средствами java было невозможно.
Как результат - аварийный ребут JBoss-а со всеми аппликейшенами.
Дамп стека коматоза не сохранился?
...
Рейтинг: 0 / 0
Java и потоки
    #38168017
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chabapokНо да, хочется прибивать зависшее - юзай процессы, а не потоки. Правда они тоже бывают неприбиваемы.
Получается, что так, но и то не всегда.

Пожалуйста попродробнее про "неприбиваемые". В каких случаях бывают?
...
Рейтинг: 0 / 0
Java и потоки
    #38168605
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
иногда ты делаешь kill, а процесс висит как зомби, и прибивается только тогда, когда прибивается (или завершается) его родитель.
...
Рейтинг: 0 / 0
Java и потоки
    #38168610
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczДамп стека коматоза не сохранился?
Увы нет. Да и я уже ушел с проекта.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Java и потоки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]