powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / убить поток
6 сообщений из 6, страница 1 из 1
убить поток
    #33466458
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имею такой фрагмент:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  private  Thread thread=Thread.currentThread();

	 try {
         //...	что-то делаю

//теперь хочу просто закрыть (убить) поток
	 this .getThread().destroy();
	//this.getThread().stop();
	} catch (Exception ex){
	System.err.println("Error in Lizenz.makeLizenz()");
}

поток прекращается, но вываливается ошибка (?):
Код: plaintext
1.
2.
Exception in thread "main" java.lang.NoSuchMethodError
	at java.lang.Thread.destroy(Thread.java: 779 )

при этом даже блок try/catch ее не отлавливает. Похоже, что ошибку вырабатывает виртуальная машина. В принципе результат удовлетворяет, но вот сообщение об ошибке не нравится. По букварю я смотрел, что этот метод (destroy)- единственный,однако его не рекомендуют использовать. Другой метод - stop - вообще depricated. В общем хотел спросить как с такой задачей можно по другому справится.

спасибо за советы

PS
Я откопал типа содержимое Thread.destroy:
Код: plaintext
1.
2.
3.
4.
5.
6.
 /**
     * Destroys this thread, without any cleanup. Any monitors it has 
     * locked remain locked. (This method is not implemented.)
     */
     public   void  destroy() {
	 throw   new  NoSuchMethodError();
    }
но похоже это не очень проливает свет на этот вопрос
...
Рейтинг: 0 / 0
убить поток
    #33466467
jstm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А чем System.exit(errno) не устраивает ???
...
Рейтинг: 0 / 0
убить поток
    #33466490
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jstmА чем System.exit(errno) не устраивает ???

дело в том, что программа должна дальше работать, просто эта ветвь должна "героически" погибнуть
...
Рейтинг: 0 / 0
убить поток
    #33466526
jstm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем тред ТАК убивать, если можно просто выйти из тред метода (run) ? Вообще убийство тредов не есть правильная работа с тредами в Java. В крайнем случае бросайте бизнес эксепшион и ловите его в run методе, а там решайте - работать дальше или немедленно выйти (return) установив, возможно, в один из аттрибутов thread обьекта код ошибки. Так намного безопасней и чище. IMHO
...
Рейтинг: 0 / 0
убить поток
    #33466528
jstm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Метод destroy, кстати вы должны бы переопределять в своем классе, если вы наследуетесь от Thread, ну или имплементировать если от Runnable. Обычно destroy имплементируют таким образом, чтобы при его вызове очистить все ресурсы треда и каким нибудь образом закончить run().
...
Рейтинг: 0 / 0
убить поток
    #33466566
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jstmЗачем тред ТАК убивать, если можно просто выйти из тред метода (run) ? Вообще убийство тредов не есть правильная работа с тредами в Java. В крайнем случае бросайте бизнес эксепшион и ловите его в run методе, а там решайте - работать дальше или немедленно выйти (return) установив, возможно, в один из аттрибутов thread обьекта код ошибки. Так намного безопасней и чище. IMHO

спасибо jstm, пожалуй это очень разумная мысль.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / убить поток
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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