Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как остановить зависший поток? / 5 сообщений из 5, страница 1 из 1
22.08.2016, 16:18
    #39295657
Сергей_ТВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как остановить зависший поток?
Пишу код для получения содержания (html контента) по введенному url. Для запроса на получение контента создается отдельный поток. При тестировании столкнулся с тем, что некоторые url подвешивают потоки и их не получается аккуратно остановить. Может кто подскажет в чем проблема?

... собственно виснет поток после 6-ой строчки этого фрагмента

Если нужно могу загрузить архив проекта (маленький, 7 кВ), чтобы на рутину время не тратить...

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
	static void reader (String url) {
		String content = "";
		
		 try {
	            URLConnection conn = new URL("http://" + url).openConnection();
	            content = new Scanner(conn.getInputStream()).useDelimiter("\\Z").next();
	          
	            	System.out.println(url + " содержание = " + content);
	            	//flag = false;
	        }
	        catch(Exception e)
	        {
	        	System.out.println("URL не найден или Ошибка в URL " + url);
	        	
	        }
		
	}
...
Рейтинг: 0 / 0
22.08.2016, 16:47
    #39295672
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как остановить зависший поток?
А что показывает ThreadDump?
...
Рейтинг: 0 / 0
22.08.2016, 17:00
    #39295679
Сергей_ТВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как остановить зависший поток?
mayton,
я не смотрел...
сейчас попробую поставить и отпишусь
Спасибо, за вопрос! Мне кажется он полезным
...
Рейтинг: 0 / 0
22.08.2016, 17:10
    #39295687
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как остановить зависший поток?
Сергей_ТВПишу код для получения содержания (html контента) по введенному url. Для запроса на получение контента создается отдельный поток. При тестировании столкнулся с тем, что некоторые url подвешивают потоки и их не получается аккуратно остановить. Может кто подскажет в чем проблема?

Не хватает
Код: java
1.
2.
        c.setConnectTimeout(...);
        c.setReadTimeout(...);



Сеть она такая- пакет может заблудится.
...
Рейтинг: 0 / 0
22.08.2016, 17:25
    #39295703
Сергей_ТВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как остановить зависший поток?
Алексей, спасибо! Получилось

рабочий фрагмент кода
try {
URLConnection conn = new URL(" http://" + url).openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(8000);
content = new Scanner(conn.getInputStream()).useDelimiter("\\Z").next();


System.out.println(url + " содержание = " + content);
//flag = false;
}
catch(Exception e)
{
System.out.println("URL не найден или Ошибка в URL " + url);

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


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