Не зная более подробной информации о требованиях к вашему серверу, трудно сказать, какой подход может повысить производительность и / или уменьшить сложность кода.
Самое забавное, что производительность и простота обычно сочетаются в реальной конструкции сервера (но придумать упрощенную конструкцию сложно). Выбор / опрос сам по себе не дает вам лучшей производительности. И пул потоков определенно не уменьшает сложность вашего кода.
Чтобы ответить на ваш вопрос: 1 все еще имеет значение. Асинхронный дизайн плохо масштабируется на мультипроцессорной машине, но это верно только в том случае, если ваш сервер работает на одном процессе. Что если ваш сервер предназначен для запуска нескольких процессов на многопроцессорной машине? Разные процессы могут выполняться под разными учетными записями пользователей и иметь разные настройки безопасности. Как насчет виртуальных машин? Один поток на процесс не означает, что вы не можете использовать преимущества многоядерных машин.
Однако я действительно не могу вспомнить, когда в последний раз я видел реальный дизайн сервера, основанный на асинхронном выборе (). Может быть, в учебниках, когда я учился в колледже, но не в реальной производственной системе.