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

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

Спасибо.
  • Вопрос задан
  • 4441 просмотр
Решения вопроса 1
@relgames
Java Developer
Последний тренд — всякие NIO
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
TheHorse
@TheHorse
1. В большинстве случаев, классический подход — 1 поток, синхронная обработка — достаточно быстр. Особенно если нет чтений из файлов и прочего.
2. Если пункт 1 не подходит — потоков должно быть статическое количество, желательно равное количеству аппаратных потоков (ядер) процессора.

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

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

Похожие вопросы