В чем преимущество Asyn c File NIO в Java? - PullRequest
6 голосов
/ 10 июля 2020

Согласно документации AsynchronousFileChannel и AsynchronousChannelGroup , asyn c NIO использует выделенный пул потоков, в котором «обрабатываются события ввода-вывода». Я не смог найти четкого заявления о том, что означает «обработка» в этом контексте, но, согласно this , я почти уверен, что в конце концов в этих выделенных потоках происходит блокировка. Чтобы сузить круг вопросов, я использую Linux и, основываясь на ответе Алекса Юрши , в нем нет такой вещи, как неблокирующий ввод-вывод, только Windows поддерживает его на некоторых уровнях.

Мой вопрос: в чем преимущество использования asyn c NIO по сравнению с синхронным вводом-выводом, работающим в выделенном пуле потоков, созданном мной? Учитывая введенную сложность, каков будет сценарий, когда его все же стоит реализовать?

...