Linux下的五种I/O模型:https://www.cnblogs.com/chy2055/p/5220793.html
同步与异步区别在于内核是否会主动通知应用程序相应操作已完成
阻塞与非阻塞的区别在于应用程序发出请求后是否只等待内核该操作的响应而不去干别的事,还是无论是否有结果都立刻返回
例如:同步非阻塞I/O,应用程序虽不阻塞,但仍需要通过轮询的方式询问内核操作是否完成(对应I/O复用中的select和poll)因为是自己主动干的, 所以叫同步,与异步相对应
操作系统主动发起, 就是异步;
大概两种办法, 一个是回调, 执行这个回调的线程是操作系统自己创建的, 不是你创建的; 所以你发起 IO 后就可以不管了, 反正完成后会有一个不需要你创建的线程调用你的回调函数;
另外一个能主动调用的貌似只有一个信号机制了;
同步与阻塞的理解:
阻塞是一种工作模式,可以用来实现同步。
https://m.newsmth.net/article/LinuxDev/69511?p=1
关于阻塞的理解:
阻塞是如何实现的?其本质是否是无限循环?https://www.zhihu.com/question/391359472
https://www.cnblogs.com/yougewe/p/9751501.html