同步与异步
关注两个进程间通信方式,同步是A进程调用B进程后需要等待B进程执行完成后,A进程才会继续向下执行。异步是A进程调用B进程后,A进程会立即继续向下执行
阻塞与非阻塞
了解 阻塞与非阻塞 首先需要熟悉两个概念 内核空间 与 用户空间
内核空间和用户空间,操作系统为了安全,用户空间是没有权限操作硬件设备的,比如网卡。所以需要通过内核空间与硬件设备间的交互。 内核空间存储的代码和数据具有更高级别的权限。内存访问的相关硬件在程序执行期间会进行访问控制(AccessControl),使得用户空间的程序不能直接读写内核空间的内存。
我们从互联网上获取数据或者向互联网发送数据(当然这里也有可能是跟磁盘交互),数据流向大致如下:
用户线程A -> 用户空间 -> 内核空间 -> 硬件设备
或
硬件设备 -> 内核空间 -> 用户空间 -> 用户线程A
- 阻塞:用户空间 send 内核空间,需要等内核空间处理完毕后,才返回
- 非阻塞:用户空间 send 内核空间,无需等待,直接返回,需要轮询才知道是否发送完毕
