Мы много используем сокеты в программе, над которой я работаю, и иногда обрабатываем соединения от примерно до 100 машин одновременно. У нас есть комбинация неблокирующего I/O, используемого с таблицей состояний для управления ею и традиционными сокетами Java, которые используют потоки.
У нас довольно много проблем с неблокирующими сокетами, и мне лично нравится использовать потоки для более эффективного управления сокетами. Поэтому мой вопрос:
Сколько экономии достигается за счет использования неблокирующих сокетов в одном потоке? Насколько плохо происходит переключение контекста при использовании потоков и сколько параллельных подключений можно масштабировать для использования потоковой модели в Java?