Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Шо за хрень с потоками? Не работают. / 12 сообщений из 12, страница 1 из 1
06.10.2007, 22:13:44
    #34852027
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
Есть в приложении (Swing) место, которое очень долго выполняется. Ну собственно основная задача приложения. Интерфейс, конечно, зависает напрочь пока прога думает. Я решил вынести всю эту логику в отдельный поток. Написал свой ранэйбл. Реализовал в run что надо. Поток работает с данными, которые живут в основном потоке.

В основном запускаю его:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
TaskExecuter executer =  new  TaskExecuter();
	executer.setTasks(tasks);
	
	Thread execThread =  new  Thread(executer);
	
	execThread.run();
	
	JOptionPane.showMessageDialog( this , "0000000000");

Сам поток в конце своей работы тоже выводит диалоговое окно с сообщением.

Проблема в том, что приложение всё равно "виснет" и показывает своё диалоговое окно только после того, как своё покажет поток. Отсюда я делаю вывод, что код из метода run исполняется в основном потоке.

В чём может быть причина?

ЗЫ: платформа WinXP

Код: plaintext
Meo voto
...
Рейтинг: 0 / 0
06.10.2007, 23:00:45
    #34852068
agrasoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
слехка не в ту сторону смотришь :) вот ничо себе так статья: Swing threads

вот еще источник можешь почитать, информация старая, но интересная :)
...
Рейтинг: 0 / 0
06.10.2007, 23:21:19
    #34852096
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
agrasoffслехка не в ту сторону смотришь :) вот ничо себе так статья: Swing threads

вот еще источник можешь почитать, информация старая, но интересная :)
Аааа! Английский. Жееесть :))
...
Рейтинг: 0 / 0
06.10.2007, 23:39:19
    #34852112
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
Я обычно не так делал. TaskExecutor реализовывал от Runnable, создавал экземпляр и толкал метод Thread.start. Хотя, чтоб говорить более детально, надо-бы на твои исходники смотреть.
...
Рейтинг: 0 / 0
07.10.2007, 00:19:01
    #34852136
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
Привёл код к такому виду:
Код: plaintext
1.
2.
3.
4.
5.
TaskExecuter executer =  new  TaskExecuter();
	
EventQueue.invokeLater(executer);
	
JOptionPane.showMessageDialog( this , "0000000000");
Прогресс!!! Свинг сразу старается нарисовать диалоговое окошко. Но только у него это слабо получается. Окошко дорисовывается лишь когда поток executer дорабатывает до конца.
...
Рейтинг: 0 / 0
07.10.2007, 00:19:56
    #34852137
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
maytonЯ обычно не так делал. TaskExecutor реализовывал от Runnable, создавал экземпляр и толкал метод Thread.start. Хотя, чтоб говорить более детально, надо-бы на твои исходники смотреть.
Я могу показать весь проект. Но там тыщи три-четыре строк. Не считал ещё:)
...
Рейтинг: 0 / 0
07.10.2007, 00:23:31
    #34852142
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
Сделай executor-у setPriority(Thread.MIN_PRIORITY) перед стартом.
...
Рейтинг: 0 / 0
07.10.2007, 00:24:04
    #34852144
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
Ааааааааааааааааааааааааааааааааа!!!

Я дауууууууууун!!! бл*, я такой даун!!! Я мегадаун!!!

Спосибо тебе огромное, mayton!!! Я вызывал run, а не start. run не создаёт нового потока. Только дёргает run ранейбла который в Тред засунут в конструкторе.

Код: plaintext
Meo voto
...
Рейтинг: 0 / 0
07.10.2007, 00:24:51
    #34852146
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
maytonСделай executor-у setPriority(Thread.MIN_PRIORITY) перед стартом.
Пасиб, твой предыдущий совет вдохнул в меня разум и всё вроде пытается работать.
...
Рейтинг: 0 / 0
07.10.2007, 00:57:52
    #34852159
Java Programmer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
SarinАаааааааааааааааааааааааааааааааа!!!

Я дауууууууууун!!! бл*, я такой даун!!! Я мегадаун!!!

Спосибо тебе огромное, mayton!!! Я вызывал run, а не start. run не создаёт нового потока. Только дёргает run ранейбла который в Тред засунут в конструкторе.

Код: plaintext
Meo voto


Какая самокритика ))
...
Рейтинг: 0 / 0
07.10.2007, 01:07:37
    #34852162
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
...
Рейтинг: 0 / 0
07.10.2007, 01:44:09
    #34852184
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шо за хрень с потоками? Не работают.
Да сёня целый день туплю по разному.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Шо за хрень с потоками? Не работают. / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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