阻塞:等待IO的时候休眠,不进行CPU调度,不占用CPU

非阻塞轮询: 发生IO等待时,处理其它事务,然后固定的时间去检查IO事件是否完成

select: select 是非阻塞轮询的升级版,select可以观察多个流的IO事件,没有IO事件时阻塞掉当前线程,有IO事件时唤醒线程。但是这样效率依然比较低, 因为只返回了有IO事件,并没有返回具体是哪个流发生了IO事件,客户端需要遍历所有的流。时间复杂度是O(n)

epoll: epoll 是一种IO事件通知机制,比如epoll注册了非空和非满这两个事件,缓冲区非空代表有数据流入,非满代表流可以被写入,时间复杂度降低到了O(1)

Copyright © 运维知识库 all right reserved,powered by Gitbook文件修订时间: 2023-09-19 10:45:38

results matching ""

    No results matching ""