Я часто слышал о asynchronous I/O
, который не блокирует, если нет ничего для ввода-вывода.Почему блокирование ввода-вывода происходит?
Мой вопрос, когда мы делаем некоторые blocking operation
, я не вижу никакой логики в моем коде, которые блокируют выполнение. Итак, кто вызывает блокировку? Операционная система?
Так что, если мы хотим non-blocking operation
, мы должны ожидания для ОС, чтобы обеспечить поддержку? Или мы можем реализовать версию non-blocking
по версии blocking
?
«Я часто слышал об асинхронном вводе-выводе, который не блокирует, если нет ничего для ввода-вывода»: это утверждение очень смутно. Существует три разные вещи: блокировка ввода-вывода, неблокирующий ввод-вывод и асинхронный ввод-вывод. Только первый из этих блоков. – EJP
@ EJP Честно говоря, я не совсем уверен в различии между неблокирующими и асинхронными. Спасибо, что вызвали это. Я уверен, что асинхронный ввод-вывод не блокирует. Есть ли неблокирующий ввод-вывод, который не является асинхронным? – smwikipedia