| Виды программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
iterator, который возвращает элемент несколько раз TCP\IP в J2ME, Полноценно ли? zip + mail, Нуно отсолать зазипованный файл Трудно ли изменить некоторые элементы UI? получить значение jDialog, Вызов Даже незнаю как сформировать вопрос..., создание объектов в цикле Кто знает как писать на jav'e для, сотовых телефонов Java vs HOOK Копирование файла, Из одной папки в другую Порядок вычисления логического выражения Как Компилировать трабл setVisible... как объяснить такое поведение?, отсутствует реакция... Не рисуется пустая таблица JBuilder X, New version JDBC, Про JDBCи JAVA Вызов неизвестных методов (eval) Можно ли писать на J++ DCOM-объекты? преобразование DOM XML с помошью XSLT Разложение простого текста в массив байт, нет описания classpath-ы для JSP из .class сдеать .java перебор массива Можно ли в Jar запихнуть классы JApplet? Ща буду кого нить бить!, if (int==int) problem or "сам дурак" вакансия, требуется опытный програмист на JAVA J2EE Как рисовать на рабочий стол с помощью java где расположить объект jPanel? LDAP, обращение к LDAP из JAVA Forte for Java CE, Вопрос по использованию массив в массиве... трабл... Как Вы относитесь к курящим девушкам? Java2, @@??? Applet и HTTP/Socks-прокси. метод "getBlob", пакет java.sql как убрать кнопки из заголовка окна в диалоге?, SWING Как? AXIS Исходники, Исходники JVM Использование чужих EJB Как создать экзешник? Как Вы относитесь к курящим девушкам? Прежде чем задать вопрос, прочтите это! Прежде чем задать вопрос, прочтите это! Документация и книги по Java, Давайте соберём ссылки совместимость WebServices на Java и С# ПОМОИТЕ ПЛИЗ ! Почему не работает ?, Есть апплет (см) Что с ним не так ? ANT, Проблемы с Ant загрузка DLL из HTML через JAVA апплет, нужна консультация Web Deployment Descriptor Как работать с растровым изображением? Начинаю изучать Java, Какие проги нужны... Кто знаком с mycgiserver.com, где там индексная страница? Java Media Framework (JMF), расскажите, как им пользоваться... Документация и книги по Java, Давайте соберём ссылки Запуск и останов потока..., Немогу остановить. Какая разница?, дескриптор vs. хендл создать jar... Вопрос об исключениях, порядок выполнения Передача параметров функцию, вместо параметра null Юниксовые сигналы в Яве работа с images Проблемы с кодировкой... Копирование файлов Нужны гениальные программисты Java :) Прямоугольная область из Java формы, Надо сохранить в jpg то, что рисую Разве нет совместимости?.., jdk1.2.2 & jdk 1.4.1... Апплет русский не понимает |
Платные хостинги Раскрутка сайта Книги по программированию Запуск и останов потока..., Немогу остановить.
- Может для кого и смешная ситцация, но я немогу остановить запущенный поток...вот реализация.основной код:Код public void createAllObjects (){ // создаем все необходимые объекты // создаем новый поток t = new TcpThread(this); ...}highlightSyntax('javaE0ZTMx','java');код потока.Код import java.io.*;import java.net.*;public class TcpThread implements Runnable { /** Creates a new instance of TcpThread */ public TcpThread (pbxMain m) { this.mainObj=m; } public void newThread(){ try{ t=new TcpThread (mainObj); } catch(Exception e){ System.out.println(e.getMessage ()); } tred=new Thread (t, "новый поток"); tred.start (); System.out.println ("выполнен последний оператор метода main()"); } public void stopThread(){ try { Thread.currentThread ().interrupt (); }catch (Exception e){ System.out.println(e.getMessage ()); } } public void run () { System.out.println ("выполняется поток " + Thread.currentThread ().toString ()); boolean i=true; int len=-1; String buf=""; while(i){ /* len=mainObj.conn.ReadTpkt (); if ( len > 0 ){ buf=mainObj.conn.ReadMsg (len); } else if ( len < 0){ } */ try { tred.sleep(5000); } catch (Exception e){ } System.out.println("-------------------------"); } } public pbxMain mainObj; public TcpThread t; public Thread tred;}highlightSyntax('javaOTgxNWE','java');и попытка останова потока из основного кода.Код public void removeAllObjects (){ // удаляем объекты // удаляем поток this.t.stopThread (); ...}highlightSyntax('javaZjA2ZWM3','java');После этого поток продолжает работу как ни в чем не бывало...даже ексепшн не помогает ничего эдакого отловить... - Метод stop() является Depricated, то-есть его использование устарело и может быть не реализованно в следующих версиях Java. Возможно в твоей версии в этом методе просто заглушка, которая ничего не делает.Посмотри как можно корректно остановить поток здесь:The Life Cycle of a Thread - Взгляни внимательно, я не использую метод stop. ДЛя этого у меня реализован метод stopThread, который в свою очередь вызывает Thread.currentThread ().interrupt ()Но за ссылку ОГРОМНЫЙ сенкс! - Странна... Я что то из кода не могу понять - ты запускаешь 2-а одинаковых потока? Или как? - нет... С чего ты взял?Из основного кода я создаю объект типа TcpThread t (это мой класс)потом при необходимости я вызываю у этого объекта метод t.newThread() в котором стартует новый поток. - t=new TcpThread (mainObj); - два раза используется...Но это в общем то мелочи просто яб сделал чутка по другому Причина, почему тред не останавливается: метод интеррапт посылает InteruptedException.В общем посмотри тут: http://java.sun.com/j2se/1.3/docs/guide/mi...eprecation.htmlВ твоем случае помогут небольшие шаманские танцы . К примеру так: (сорри я чутка по другому написал - более красиво как мне кажется )В общем тред выглядит так:Код public class TestThread extends Thread{ private Object main; private boolean interrupted; public TestThread( Object main ) { this.main = main; interrupted = false; } public void interrupt() { interrupted = true; super.interrupt(); } public void run() { System.out.println ("выполняется поток " + toString() ); boolean i = true; while( i && !interrupted ) { try { sleep(1000); } catch (Exception e){} System.out.println( "******************" ); } }}highlightSyntax('javaTUxMWI','java');запуск и останов треда выглядит так:Код TestThread thread = new TestThread( "some object" ); System.out.println("Start thread"); thread.start(); try { Thread.sleep( 10000 ); } catch( Exception e ) {} System.out.println("Stop thread"); thread.interrupt(); try { Thread.sleep( 10000 ); } catch( Exception e ) {}highlightSyntax('javaNTM4MDU','java'); Это сообщение отредактировал DarkDS - 29.9.2003, 22:42 - В общем вот... Посмотри - что не понятно... - Н-да. Покрасивше моего будет... Ошибку понял. принял к сведению... ПАСИБ! |