Asynchronous 为什么会发生阻塞I/O?

Asynchronous 为什么会发生阻塞I/O?,asynchronous,nio,blocking,nonblocking,Asynchronous,Nio,Blocking,Nonblocking,我经常听说异步I/O,如果I/O没有任何内容,它就是无阻塞的 我的问题是,当我们执行一些阻塞操作时,我在代码中看不到任何阻止执行的逻辑。那么,是谁造成了阻塞?操作系统 因此,如果我们想要非阻塞操作,我们是否必须等待操作系统提供支持?或者我们可以在阻塞版本上实现非阻塞版本吗 同一进程(线程)中的每个代码都像往常一样阻塞。 完成一个代码后,执行下一行。 您不必声明阻塞类型 另一方面,如果您想非阻塞一些代码。 您必须在其他进程(线程)中运行才能做到这一点。编码是一种艺术,不是吗?谢谢您的回复。我经常听

我经常听说
异步I/O
,如果I/O没有任何内容,它就是无阻塞的

我的问题是,当我们执行一些
阻塞操作时,我在代码中看不到任何阻止执行的逻辑。那么,是谁造成了阻塞?操作系统

因此,如果我们想要
非阻塞操作
,我们是否必须等待操作系统提供支持?或者我们可以在
阻塞
版本上实现
非阻塞
版本吗

同一进程(线程)中的每个代码都像往常一样阻塞。 完成一个代码后,执行下一行。 您不必声明
阻塞类型

另一方面,如果您想
非阻塞
一些代码。
您必须在其他进程(线程)中运行才能做到这一点。

编码是一种艺术,不是吗?谢谢您的回复。我经常听说异步I/O,它是无阻塞的,如果I/O没有任何问题的话:这句话非常混乱。有三种不同的东西:阻塞I/O、非阻塞I/O和异步I/O。只有第一种块。@EJP老实说,我不太确定非阻塞和异步的区别。谢谢你提出来。我确信异步I/O是非阻塞的。是否存在一些非异步的非阻塞I/O?