Я новичок в Java NIO и немного использовал его. У меня общий запрос. Если вы разрабатываете приложение с ультранизкой задержкой и высокопроизводительным приложением, какой из двух явно получает выгоду, используя Non blocking IO?Java NIO подходит для низкой латентности или высокой пропускной способности?
Мое понимание заключается в том, что неблокирующий IO должен, безусловно, способствовать высокой пропускной способности, поскольку рабочие потоки не блокируются, следовательно, не дожидаясь ответа и могут запускать новые запросы до тех пор, пока не будут обслуживаться предыдущие запросы. Как только мы получим ответы на ранее уволенные запросы, рабочие потоки могут обрабатывать их асинхронно, увеличивая пропускную способность.
Однако я не могу видеть, как неблокирующий IO напрямую приносит пользу приложению с низкой задержкой.
Я предполагаю, что «асинхронное поведение - отличный способ избежать разногласий». Если это так, то низкая конкуренция означает низкую задержку. Следовательно, NIO может помочь в малой задержке. Имеет ли это смысл?
Ваше сообщение состоит в основном из * non sequiturs. * Трудно найти ответный вопрос здесь. – EJP
@ EJP, если неясно, извиняюсь. Я просто хочу знать, может ли использование NIO использовать приложение с низкой задержкой. Если да, то как? –
Я был бы удивлен. С блокировкой ввода/вывода и потоков у вас есть любой механизм планирования, который реализует операционная система, и вы можете поспорить, что он очень сильно настроен. С NIO вы предоставляете свое собственное планирование в виде линейного сканирования по готовым клавишам выбора, а также получаете возможность тратить время между выборами, если вы не очень осторожны. – EJP