同/异步,阻塞/非阻塞 傻傻分不清楚?

Posted 小蜗爬爬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同/异步,阻塞/非阻塞 傻傻分不清楚?相关的知识,希望对你有一定的参考价值。

推荐博文:http://blog.csdn.net/caiwenfeng_for_23/article/details/8458299

在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步;

       同步和异步是针对应用程序和内核的交互而言的;

       同步指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪,

       异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知

 

       阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作函数的实现方式

       阻塞方式下读取或者写入函数将一直等待,

       非阻塞方式下,读取或者写入函数会立即返回一个状态值。

NIO: Reactor模式,或者叫反应器模式。“轮询”

AIO:Proactor模式   “回调”

Reactor和Proactor模式的主要区别就是真正的读取和写入操作是有谁来完成的,

Reactor中需要应用程序自己读取或者写入数据,

而Proactor模式中,应用程序不需要进行实际的读写过程,它只需要从缓存区读取或者写入即可,操作系统会读取缓存区或者写入缓存区到真正的IO设备.

以上是关于同/异步,阻塞/非阻塞 傻傻分不清楚?的主要内容,如果未能解决你的问题,请参考以下文章

死磕NIO— 阻塞非阻塞同步异步,傻傻分不清楚

死磕NIO— 阻塞非阻塞同步异步,傻傻分不清楚

死磕NIO— 阻塞IO,非阻塞IO,IO复用,信号驱动IO,异步IO,这你真的分的清楚吗?

死磕NIO— 阻塞IO,非阻塞IO,IO复用,信号驱动IO,异步IO,这你真的分的清楚吗?

死磕NIO— 阻塞IO,非阻塞IO,IO复用,信号驱动IO,异步IO,这你真的分的清楚吗?

干货 | 什么是同步异步?什么是阻塞非阻塞?