Итак, как сравнить объекты для использования Linux, родного для Java/Scala, для записи неблокирующих io? На момент написания статьи я просто изучал/играл с написанием Http-сервера. Так что извинитесь, если у меня есть некоторые основные пробелы в моих знаниях. В настоящее время все написано в Scala, используя поток io. Если я использую собственный код для системных вызовов, то, очевидно, мне нужно установить связь между собственным C/C++ и моим кодом Scala. Я уже делал немного JNI, и мне также интересно экспериментировать с запуском собственного кода в отдельном процессе.Java/Scala vs Linux для неблокирующих (http) io
Однако я хочу подчеркнуть мой вопрос не о Scala/Java родного интерфейсе, а чисто о преимуществах если использовать встроенную систему вызовов библиотеки через экосистему Scala/Java для Http порции. Если я использую native, я могу использовать обновленные ядра. В некотором роде этот вопрос касается обучения, будь то инвестировать свое время обучения в экосистему Linux или в систему Java/Scala io и без блокировки io. Я знаю, что есть переход на шунтирование TCP в пользовательское пространство, которое может предложить интересные возможности.
Первоначально я сфокусирован на сервере TCP/IP, что, без сомнения, является основным прецедентом, но также и другими io, такими как доступ к базе данных.
Редактировать Развернуть: Является ли java.nio полностью асинхронным или действительно использует форму опроса за кулисами? Можно ли получить полную асинхронность с использованием native или вы всегда зависите от какой-либо формы опроса? Является ли java.nio полностью использовать современные асинхронные io-установки ядра? Мой вопрос также стимулируется этой статьей: Streaming video on 10 Gigabit Ethernet and beyond ставит под вопрос использование обычных сокетов.
Это может стоить даже больше, перенося данные с/на родную. Поскольку неблокирующий ввод-вывод (с тайм-аутами) также возможен на стороне JVM. Попробуйте это после того, как вы сделали свой первый сервер в Scala/Java. –