博主
258
258
258
258
专辑

3、redis特性之单线程+多路IO复用

迷人的老约翰 2021-08-03 12:29:22 6843 0 0 0

####Redis是单线程+多路IO复用技术

多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)

图片alt

以买票为例,黄牛是单线程,每个人发不同的买票请求到黄牛,然后去做自己的事情,当黄牛买到票的时候通知线程来拿

整个事件处理器是在单线程上运行的,但是通过 I/O 多路复用模块的引入,实现了同时对多个 FD 读写的监控,当其中一个client端达到写或读的状态,文件事件处理器就马上执行,从而就不会出现I/O堵塞的问题,提高了网络通信的性能。