В Java 1.4 появился новый способ обработки множества клиентов для сервера — nio и его select. Везде указывается, что с при использовании его по идее сервер должен работать быстрее, если он работает со множеством клиентов. Но меня гложат сомнения.
Дело в том, что у меня есть задание написать сокет-сервер для онлайновых флеш-игр. То есть ожидается большое кол-во пользователей и создавать для каждого посетителя отдельный поток может быть достаточно накладно. Но в то же время каждый запрос пользователя может требовать иногда нетривиальных подсчетов, записей в БД, в файлы, в сокеты других посетителей. Соответственно, если все это будет выполнятся в одном потоке, как мне кажется, будут достаточно большие задержки в обслуживании.
Стоит ли в этом случае использовать неблокирующий сокет, или все-таки необходимо использовать многопоточный сервер с одним потоком для каждого пользователя? Какое зло меньше? Может есть возможность как-то использовать и то и то?