首先我们框定一下背景,我们探讨的是Linux系统下的IO模型。

同步和异步是针对内核操作数据而言的,同步是指内核串行顺序操作数据,异步是指内核并行(或并发)操作数据,然后通过回调的方式通知程序完成;其中,内核同步读取数据为配合程序非阻塞,可立即返回操作结果。

阻塞非阻塞是针对线程的状态而言的,阻塞即线程在停顿,非阻塞即线程正常运行。

在java中nio是非阻塞同步IO,因为内核并没有通过回调的方式通知程序数据完成,且线程没有停顿,而是在做完一段事情后,不停轮询结果。

04-20 01:20