I/O中的 同步异步,阻塞非阻塞

Posted lccsblog

tags:

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

I/O中的同步和异步的概念和线程中不太一样。

I/O写的时候,默认是写到页高速缓存就返回的,然后异步刷到磁盘上。而同步的I/O指的是改动写到磁盘上之后才会返回结果.可以通过fsync(),和fdatasync()将改动同步到磁盘。或者在open()的时候就指明同步的参数。

而阻塞和非阻塞指的是,在文件没有内容可读的时候(不实EOF)是阻塞等待数据,还是立马返回-1错误

 

直接I/O是同步I/O

 

I/O多路复用支持应用同时在多个文件描述符上阻塞,并在其中某个可以读写时收到通知。

Linux提供了三种I/O多路复用方案:select,poll和epoll,epoll是Linux特有的高级解决方案

以上是关于I/O中的 同步异步,阻塞非阻塞的主要内容,如果未能解决你的问题,请参考以下文章

socket阻塞与非阻塞,同步与异步I/O模型

I/O 怎样理解阻塞非阻塞与同步异步的区别?

I/O 阻塞与非阻塞,同步与异步

同步异步阻塞非阻塞与服务器

阻塞和非阻塞同步和异步

聊聊阻塞与非阻塞同步与异步I/O模型