Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка каналов связи с клиентами 
V
    Опции темы
eugene88
Дата 13.5.2007, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 11.11.2006

Репутация: нет
Всего: нет



Народ, подскажите, вот я пишу чат и у меня есть массив InputStream объектов, т. е. массив каналов связи на каждого клиента ( понятно, что каждому пользователю по каналу), и я просто тупо бегаю в цикле и смотрю, не появилось ли чего-нибудь в каком-нибудь из каналов связи, но этот бесконечный цикл, слишком много ресурсов жрет, нет ли другого способа обрабатывать сразу все каналы (кроме того, как создать на каждый канал по потоку)?
PM MAIL   Вверх
powerOn
Дата 13.5.2007, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 2
Всего: 159



Цитата(eugene88 @  14.5.2007,  00:19 Найти цитируемый пост)
(кроме того, как создать на каждый канал по потоку)?

А чем этот не устраивает?


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
eugene88
Дата 13.5.2007, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 11.11.2006

Репутация: нет
Всего: нет



Ладно попробую переделать, раз готовых нет методов.
PM MAIL   Вверх
COVD
Дата 14.5.2007, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



Цитата

кроме того, как создать на каждый канал по потоку


Если вы ожидаете тысячи клиентов одновременно, то для этого существует java.nio - неблокирующие операции ввода-вывода. Все клиенты могут обслуживаться одним потоком.

Цитата

но этот бесконечный цикл, слишком много ресурсов жрет


Цикл в любом случае бесконечный. Если у него нет работы, то он способен захватить 100% процессорного времени. Простейшим лечением является добавление обязательного sleep() в цикл. В nio эта проблема решается селектором, который блокируется, если нет ни одного канала, готового к вводу-выводу. 

Это сообщение отредактировал(а) COVD - 14.5.2007, 20:40
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.