@Xazzzi
Творю for fun and profit!

По потоку на клиента?

Пытаюсь реализовать многопоточный сервер для flash игры на java.
Достаточно важно, чтобы не было задержек с обработкой поступающих от клиента данных.
Правильно ли будет сделать так, как это делается в большинстве найденых мною туториалов, а именно — создавать по потоку на каждого подключающегося путем ServerSocket.accept() клиента? Есть ли более продвинутые альтернативы такому решению?

Спасибо.
  • Вопрос задан
  • 4423 просмотра
Решения вопроса 1
@relgames
Java Developer
Последний тренд — всякие NIO
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
gvsmirnov
@gvsmirnov
Создание потока — не очень дешёвая операция, потому для этих целей придумали thread pool'ы, которые уже имеющиеся потоки повторно используют. В вашем случае может подойти cached thread pool.

А вообще, если у вас общение между flash-приложением и java-сервером происходит по http, то, возможно, вместо прямого использования сокетов стоит посмотреть в сторону готовых решений. Например, jetty.
Ответ написан
TheHorse
@TheHorse
1. В большинстве случаев, классический подход — 1 поток, синхронная обработка — достаточно быстр. Особенно если нет чтений из файлов и прочего.
2. Если пункт 1 не подходит — потоков должно быть статическое количество, желательно равное количеству аппаратных потоков (ядер) процессора.

Если интересна теория — смотри автоматы Мура / Мили, событийно-ориентированные подход, если язык — смотрите предыдущий ответ.
Ответ написан
Wott
@Wott
создание или выделение потока на клиента — это классика клиент-серверных приложений, но мне думается что если игра то каждый клиент будет иметь постоянное двухсторонее соединение с сервером и надо смотреть в сторону server push и прочих кометов.
Мне кажется что надо разделять пул соединений и пул потоков обработчиков очередью сообщений.
Ответ написан
Посмотрите как сделано в Red5, там можно подчерпнуть знаний.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 350 000 до 400 000 ₽
HighTeam Нижний Новгород
от 120 000 до 200 000 ₽
Quadcode Санкт-Петербург
от 130 000 до 180 000 ₽
29 нояб. 2020, в 19:24
95000 руб./за проект
29 нояб. 2020, в 18:43
10000 руб./за проект
29 нояб. 2020, в 16:24
30000 руб./за проект