同步阻塞IO 同步非阻塞IO IO多路复用

先上几张io图

阻塞IO
非阻塞IO
IO多路复用之select


一、阻塞IO与非阻塞IO

Q1: 阻塞是什么意思或者这个上下文环境是什么?

A:  阻塞是进程5状态或者7状态 其中一个状态,线程也有阻塞态

Q2: 什么情况下会使得运行中的进程进入阻塞态?

A: 因为阻塞态 是等待IO时间完成的过程 ,所以正常情况下IO操作都会进入导致进程(线程)进入阻塞态

Q3:  那非阻塞IO是什么意思?

A:非阻塞IO 就是通过轮询方式 不让线程或者进程 进入阻塞 一直持有CPU资源 的IO操作

二、同步与异步

同步:指的是被调用方做完事情之后再返回;

异步:指的是被调用方先返回,然后再做事情,做完之后再想办法通知调用方。

三、 同步IO  阻塞IO  非阻塞IO  IO多路复用

Q:非阻塞IO与IO多路复用为什么是同步的?

A:  非阻塞IO 虽然能够立即返回但是 他需要一直while轮询 这是一个阻塞过程

     IO多路复用 select 过程也是一个轮询过程 

同步 在这里是指 发起调用 到 从内核态数据拷贝到用户态数据结束过程  是不是需要等待

Q:为什么数据需要从内核态拷贝到用户态?

A: 操作系统把运行中内的内存  分为系统空间和用户空间

 操作系统 主要是  进程管理 [创建进程,撤销进程等] 存储管理[分配内存,内存置换] 设备管理   文件管理  这些都是管理的操作都运行在系统空间[内核态]

网络IO 属于设备管理 中需要的 内核程序进行网络通信

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容