![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| ushakofff |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
Вопрос в следующем ... есть некий класс JSocketConnection который описывает считывание неких пакетов из сокета ... это чтение производится в отдельном потоке, в этом потоке инфа из сокета белится на отдельные пакеты, и вот мне нужно чтобы обработка этих пакетов происходила в главном потоке Main, а не в потоке чтения инфы из сокета JSocketConnection, как это красиво и надежно реализовать. В принципе я понимаю что нужно завести защищенный буфер пакетов и в одном потоке в него кидать а вдругом его разбирать, но как из потока JSocketConnection уведомить главный поток о том что появилось собщение?
|
||||
|
|||||
| Proger10 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 16.12.2008 Репутация: нет Всего: нет |
А методы никакие главного потока не получается вызывать из этого? (думаю так и можно уведомить..)
|
|||
|
||||
| ushakofff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
Методы получается вызвать но происходит какая то ерунда ... подвисает поток чтения из сокета и больше ничего читать не хочет :( поэтому я и подумал что лучше бы обрабатывать не в этом потоке а в главном.
|
|||
|
||||
| Vitaly333 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: нет Всего: 2 |
Заведите что то типа очереди (BlockingQueue). Если из сокета пришли какие-то данные , то кидаете их в очередь на обработку. Если в очереди есть какие то данные то обработчик выдирает их из очереди и обрабатывает. Но лучше это делать в отдельном потоке а не в main, т.к. если в очереди ничего не будет то обработчик будет блокирован. |
|||
|
||||
| nucer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 21.6.2004 Где: Москва Репутация: нет Всего: 0 |
Vitaly333 дело говорит
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |