Думаю над архитектурой сервера для игры и встал вопрос над тем, как обрабатывать подключения клиентов. Протокол - tcp/ip.
Стоит выбор между многопоточной архитектурой (1 клиент - 1 поток) и асинхронным вводом/выводом (когда чтение не блокирует поток, если данных нет, а возвращает 0 и поток может обрабатывать других клиентов, то есть 1 поток - много клиентов).
Игра - mmorpg, где потенциально люди могут стоять в городе и не передавать почти никакого ввода на сервер, но так же бывают динамичные моменты где важен быстрый ответ сервера.
Потоки при остановке не используют CPU циклы, более отзывчивые, однако держат оперативную память, чего бы не хотелось в слабоактивных местах, где от игроков почти не идет ввода.
Асинхронный подход использует меньше памяти, менее уязвим к слабоактивным клиентам, но менее эффективен для активных клиентов.
Выбор очень сложный, поэтому хотел бы спросить совета у более опытных, которые имели опыт с данными подходами, спасибо.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго Впемени суток!!!Возникла проблемма c ListVeiw,повесил на него нажатие
Из очереди берем строку, парсим ее и проверяем соотвествует ли она требованиямЕсли соответствует, то отдаем в обработку соответствующему...
Есть обычное java application, работающее как процесс на моем домашнем сервереПотребовалось соединить его через WebSocket с web интерфейсом