Асинхронный файловый ввод / вывод через POSIX AIO или Windows Ilapped IO в Java

У меня была такая же проблема и она была решена, возможно, не лучшим образом, но она работает. Я заменил все разрывы строк до того, как достиг своего реального соответствия:

mystring= Regex.Replace(mystring, "\r\n", "")

Я манипулирую HTML, поэтому разрывы строк для меня в этом случае не имеют большого значения.

Я попробовал все вышеперечисленные предложения без везения, я использую .Net 3.5 FYI

4
задан Bass 23 January 2019 в 14:17
поделиться

1 ответ

Это не совсем возможно. Целый IO API должен быть повторно реализован. NIO означает неблокирующий ввод / вывод, это не то же самое, что асинхронный ввод / вывод. Неблокирующая реализация реализована в JAVA и вкратце, это означает, что ОС не имеет возможности уведомлять среду выполнения о завершении операции. Isned Java использует системные вызовы select() или poll() для проверки наличия данных.

Я мог бы поговорить об этом, но украденная картинка стоит 100 слов:

enter image description here

Вот почему в JAVA требуется отдельный поток постоянно вызывать check, check, check, check .....

Я не знаю платформу .NET, но если то, что вы опубликовали, правильно, то используется асинхронный ввод-вывод, поэтому последний столбец. Но я не доверяю ничему, что исходит от Microsoft.

Надеюсь, это ответит на ваш вопрос. Также здесь приведен дополнительный материал для чтения: https://stackoverflow.com/a/2625565/8951886

0
ответ дан piotr szybicki 23 January 2019 в 14:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: