NGINX_ I/O 模型
Posted 王华_linux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NGINX_ I/O 模型相关的知识,希望对你有一定的参考价值。
1.系统I/O模型
# 同步/异步:
同步:进程发出请求调 用后,内核不 提供通知机制,即 文件IO处理 完成后不 通知进程,需要进程 自 己去问内核是否处理 完成。
异步:进程发出请求调 用后,内核会在调 用处理 完成后返回调 用结果给进程,nginx是异步的。
# 阻塞/ 非阻塞:
阻塞:blocking,指IO操作需要彻底完成后才返回到 用户空间,调 用结果返回之前,调 用者被挂起, 干不 了 别的事情。
非阻塞:nonblocking,指IO操作被调 用后 立即返回给 用户 一个状态值, 无需等到IO操作彻底完成,最终的调 用结果返回之前,调 用者不 会被挂起,可以去做别的事情。
# IO模型组合:
同步阻塞:我点完包 子后不 能去做别的事情, 而且不 知道包 子有没有做好,需要 自 己 一直等着并 一次次的问厨师做好没有。
同步非阻塞:点完包 子后可以去做别的事情,但是不 能 长时间做别的事情,因为我还是不 知道包 子有没有做好,也要 自 己 一直等着并 一次次的问厨师做好没有,只能抽空做点别的。
异步阻塞:我点完包 子后不 能去 走做别的事情,但是厨师在做好包 子后会告诉我,也就是我不 用再 一次次为厨师包 子有没有做好了 。
异步非阻塞:我点完包 子后可以做别的事情, 而且可以 一直在做别的去事情,因为厨师在做好包 子后会告诉我。
以上是关于NGINX_ I/O 模型的主要内容,如果未能解决你的问题,请参考以下文章