当前位置: 首页 > Linux

IO模型

时间:2023-04-06 04:19:36 Linux

IO模型Redis是单线程的,为什么支持高并发?Node.js和nginx也是单线程的。除了Redis的数据存储在内存中,所有的操作都是在内存层面进行的。它的高性能还有其他原因吗?Multiplexing(eventrotationtraining)多路复用是一种IO模型,那么系统中还有哪些IO模式呢?来看看常见的IO模型同步阻塞IO(BlockingIO)传统IO模型,请求服务器,如果服务器没有返回,客户端会一直等到超时同步非阻塞IO(Non-blockingIO)请求服务器,无论是否成功,服务器都会立即返回结果。IO多路复用(IOMultiplexing)是Reactor的设计模式。select/epoll的优点是单个进程可以同时处理多个网络连接的IO。它的基本原理是select/epoll函数会不断轮询它负责的所有socket,当某个socket有数据到达时,通知用户进程。现在操作系统的多路复用API不再使用select系统调用,而是使用epoll(Linux)和kqueue(FressBSD和MacOS)异步IO(AsynchronousIO),即Proactor设计模式。当客户端发起读操作时,可以进行其他操作。操作,如果操作成功,服务端会通知客户端参考:https://www.cnblogs.com/findu...

猜你喜欢