欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

epoll是同步还是异步的-这是不是一个好问题?

程序员文章站 2022-06-19 09:25:59
...
POSIX defines these two terms as follows:
· A synchronous I/O operation causes the requesting process to be blocked until that I/O operation completes.
· An asynchronous I/O operation does not cause the requesting process to be blocked.
Using these definitions, 
the first four I/O models—blocking, nonblocking, I/O multiplexing, and signal-driven I/O—are all synchronous because
 the actual I/O operation (recvfrom) blocks the process. Only the asynchronous I/O model matches the asynchronous 
I/O definition.

<UNIX网络编程>> 第三版 6.2节


这段是关于IO同步异步的描述,书中说到:
一个同步的IO操作使得请求进程一直被阻塞,直到IO操作完成;
一个异步的IO操作不会导致请求进程被阻塞.

说说关于腾讯面试官问的epoll到底是同步的还是异步的?
其实我认为问epoll是同步和异步的,这个问题不是非常好,因为在epoll模型中,涉及到同步异步概念的
有两处:IO和消息,
而这两处恰好是不一样的,这也导致了陈硕和腾讯面试官的观点相左。根据UNIX网络编程中的定义,epoll
中的IO是同步的,但是它的消息是异步的.~~~不晓得我理解的对不对..

 

epoll是同步还是异步的-这是不是一个好问题?

epoll是同步还是异步的-这是不是一个好问题?epoll是同步还是异步的-这是不是一个好问题?