Асинхронный ввод-вывод очень хорош в ситуациях, когда вам нужно масштабировать для обработки множества одновременных соединений. Исторически одним из способов было выделение потока для каждого соединения, но этот подход имеет ограничения , о которых вы можете прочитать здесь . С асинхронным вводом-выводом вы можете легко обрабатывать многие вещи с меньшим количеством потоков и, следовательно, лучше масштабировать.
В зависимости от проблемы это может быть или не быть правильным подходом, поскольку ничто не может превзойти один поток, когда дело доходит до задержки. Однако это очень экстремальный конец и означает, что вы заботитесь о микросекундах. Во многих случаях это компромисс между задержкой и пропускной способностью / масштабируемостью.
В любом случае все зависит от того, что вы хотите решить, и какими должны быть ваши ожидания (цифры). Асинхронный ввод-вывод велик и во многих случаях и так синхронен. Также могут быть другие вещи, которые вы можете рассмотреть, такие как протокол. Несколько клиентов, заинтересованных в одних и тех же данных (потоковая передача), могут указать, что вы хотите посмотреть многоадресную рассылку. Если трафик выделен для каждого клиента, то это может не подходить.
Не зная ваших требований к задержке, но предполагая, что они не составляют несколько микросекунд, я определенно рассмотрю асинхронный ввод-вывод, просто прочитав, что у вас 1000 клиентов. Асинхронный ввод-вывод ни в коем случае не является медленным, и синхронные / однопоточные соединения могут не подходить для вас.