Спасибо BTW: извините за путаницу, это небольшой проект, в котором участвуют только 5-10 классов.
В этом нет ничего плохого.Все абстракции более высокого уровня так или иначе основаны на сокетах.Если ваш проект не достаточно большой, нет необходимости использовать ряд других фреймворков / инструментария для выполнения той же работы.Потоки дешевы (и могут даже извлечь выгоду из многоядерной архитектуры), хотя использование SelectableChannels
, как предложил @aioobe, тоже неплохая идея.
Когда ваши проекты требуют этого, вы всегда можете узнать о других методах межпроцессного взаимодействия (передача сообщений, удаленный вызов метода и т. Д., А также о его 100 реализациях).
Однако вы можете захотеть ограничить количество потоков, которые сервер использует одновременно.Это может быть легко достигнуто путем запроса, например, семафора размером, равным количеству потоков, которые вы хотите обслуживать.Еще одна интересная вещь, которую стоит рассмотреть, - это использование java пулов потоков для более эффективного повторного использования ваших ресурсов.