powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Подскаэите, как в правильно организовать в ...
10 сообщений из 10, страница 1 из 1
Подскаэите, как в правильно организовать в ...
    #37917918
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.
Есть десктопное приложение. Ему необходимо, периодически, в фоне проводить соединение по сокету и передавать некие данные на сервер по сокету.
Клиент-сервер есть. Собственно десктопное приложение тоже есть.
А вот как правильно организовать фоновую задачу - вошел в стопор и все ...
Я думаю написать класс extends от Thread или implements от Runnable. В нем бесконечный while (true) и уже в этом цикле организовать прием данных с сервера.
И, если принял данные, то предал в десктопное приложение и все в гуд.
Поправьте, если ход моих мыслей не тот.

За ранее спасибо.
...
Рейтинг: 0 / 0
Подскаэите, как в правильно организовать в ...
    #37917937
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, правильный ход мыслей. Но лучше сразу Executors подключить.
Есть ещё SwingWorker он сразу с EDT ещё и синхронизирует. Просто не понятна конкретика. Любое общение с сервере на GUI нужно делать фоновым потоком, чтобы не тормозить EDT.
...
Рейтинг: 0 / 0
Подскаэите, как в правильно организовать в ...
    #37917939
oneHalf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть слово периодически - то в яве есть таймеры - спец. классы как раз для работы в отдельном потоке. А также можно их пушки по воробьям - Quartz - умеет гораздо больше как говорят, ставят даже на сервера приложений.
...
Рейтинг: 0 / 0
Подскаэите, как в правильно организовать в ...
    #37917964
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНу, правильный ход мыслей. Но лучше сразу Executors подключить.
Есть ещё SwingWorker он сразу с EDT ещё и синхронизирует. Просто не понятна конкретика. Любое общение с сервере на GUI нужно делать фоновым потоком, чтобы не тормозить EDT.

Ага, понял, попробую.

oneHalf Если есть слово периодически - то в яве есть таймеры - спец. классы как раз для работы в отдельном потоке. А также можно их пушки по воробьям - Quartz - умеет гораздо больше как говорят, ставят даже на сервера приложений. .
С Quartz никогда не сталкивался.
А за таймеры даже забыл - стопор.


Спасибо всем!!!
И удачных удач!!!
...
Рейтинг: 0 / 0
Подскаэите, как в правильно организовать в ...
    #37917971
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomadС Quartz никогда не сталкивался.
А за таймеры даже забыл - стопор.
Спасибо всем!!!
И удачных удач!!!

С таймерами беда, что если будет непойманный эксепшн то тред умирает, пичалька, юзайте Executors
...
Рейтинг: 0 / 0
Подскаэите, как в правильно организовать в ...
    #37917972
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нафиг кварц на клиенте?
Executors.newScheduledThreadPool(...)
Свингоый Timer, по идее, тоже не нужен, т.к. он запускает события в EDT. А нам нужен фоновый процесс.
Ну, и придется, вероятно, с SwingUtilities подружиться.
...
Рейтинг: 0 / 0
Подскаэите, как в правильно организовать в ...
    #37918005
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шас начал читать про Кварк http://www.ibm.com/developerworks/ru/library/j-quartz/
Вещь действительно интересная, но больше для серверов и то при условии моцной задачи.
Но все равно интересно почитать.
А что имелось ввиду под:
Ну, и придется, вероятно, с SwingUtilities подружиться. ?
...
Рейтинг: 0 / 0
Подскаэите, как в правильно организовать в ...
    #37918009
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в качестве десктопного приложения у нас чего? Swing? Если да, то:
1. Поток с блокирующим методом, ждущем данных на сокете.
2. Кастомное событие (event).
3. Кастомный листенер в EDT, ждущий event.
Поток, получивший данные из сокета, посылает event в EDT (FireEvent). Данные, можно вместе с event-ом отправить. Либо сложить в какой-то объект, но тогда необходимо продумывать синхронизацию доступа к объекту из двух потоков (типичная задача producer-consumer). Отправив event, поток снова встает на блокирующем методе ReadSoket (или как его там ?? давно с сокетами не работал..)
...
Рейтинг: 0 / 0
Подскаэите, как в правильно организовать в ...
    #37918014
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomadНу, и придется, вероятно, с SwingUtilities подружиться. ?
Если не искпользовать SwingWorker, то для того чтобы обновлять UI из фоновых потоков нужно использовать
SwingUtilities.invokeAndWait() и SwingUtilities.invokeLater(). Иначе вылезут артефакты и неадекватные исключения.
...
Рейтинг: 0 / 0
Подскаэите, как в правильно организовать в ...
    #37918043
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczHunterNomadпропущено...
?
Если не искпользовать SwingWorker, то для того чтобы обновлять UI из фоновых потоков нужно использовать
SwingUtilities.invokeAndWait() и SwingUtilities.invokeLater(). Иначе вылезут артефакты и неадекватные исключения.

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


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