Асинхронный ввод / вывод
Асинхронный ввод / вывод (из Википедии)
Асинхронный ввод / вывод, или неблокирующий ввод / вывод, является формой ввода / вывода
обработка, позволяющая продолжить другую обработку до
передача закончена.
Это означает, что если процесс хочет выполнить read()
или write()
в синхронном вызове, процесс должен будет ждать, пока аппаратное обеспечение завершит физический ввод-вывод, чтобы его можно было информировать о успех / неудача операции ввода / вывода.
В асинхронном режиме, когда процесс выполняет асинхронный ввод / вывод для чтения / записи, системные вызовы возвращаются сразу после того, как ввод / вывод был передан аппаратному обеспечению или поставлен в очередь в ОС / ВМ. Таким образом, выполнение процесса не блокируется (поэтому и называется неблокирующим вводом / выводом), поскольку ему не нужно ждать результата от системного вызова, он получит результат позже.
Асинхронная функция
Асинхронные функции - это функция, которая возвращает данные обратно вызывающей стороне с помощью обработчика событий (или функций обратного вызова ). Функция обратного вызова может быть вызвана в любое время (в зависимости от того, сколько времени требуется для выполнения асинхронной функции). Это не похоже на синхронную функцию, которая выполнит свои инструкции перед возвратом значения.
... я могу сделать асинхронный ввод / вывод в Java?
Да, Java NIO обеспечивает неблокирующую поддержку ввода / вывода через Selector . Кроме того, Apache MINA - это сетевая инфраструктура, которая также включает неблокирующий ввод / вывод. Соответствующий SO вопрос отвечает на этот вопрос.