分层和面向对象的编程思想

四种IO模型
- 非阻塞IO
1.read()如果没有数据就直接返回一个错误码。
- 阻塞IO
1.read()如果没有数据,进程就被挂起直到有数据到来被唤醒。
- IO多路复用
1.将一个进程或线程中多处会同时阻塞的地方,添加到一个阻塞合集(文件描述符集合或与事件),然后通过这个集合在一个地方阻塞
2.集合中有一个或多个子集有数据到来时唤醒进程或线程,然后依次检查是哪个子集有数据到来,并处理有数据到来的子集。
- 异步信号驱动IO(模拟硬件中断方式)
1.在需要阻塞的地方,通过将文件描述符和一个(回调)函数绑定,事件到来时会自动执行回调函数,在回调函数中通知本该阻塞的进程。
2.进程收到通知执行对应的读写数据操作。
会有一个进程实时的去查询是否有数据到来,有数据到了就通知本该阻塞的进程。效果:本该阻塞的进程可以不受影响的去执行自己的事情,有数据来就去处理数据。
- 本文作者: 龙兄嵌入式
- 本文链接: https://hexo.880755.xyz/1970/01/01/zblog/download/74.分层和面向对象的编程思想、IO模型/