1. Redis之单线程 + 多路IO复用技术
多路复用
- 使用一个线程来检查多个文件描述符的就绪状态;
- 如果有一个文件描述符就绪,则返回;
- 否则阻塞直到超时;
- 得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(线程池);
- 本质上是没有阻塞的。
1.1. 阻塞IO(串行)
给女神发一条短信,说我来找你了,然后就默默的一直等着女神下楼,这个期间除了等待你不会做其他事情,属于备胎做法。
1.2. 非阻塞IO
给女神发短信,如果不回,接着再发,一直发到女神下楼,这个期间你除了发短信等待不会做其他事情,属于专一做法。
1.3. IO多路复用
是找一个宿管大妈来帮你监视下楼的女生,这个期间你可以些其他的事情。例如可以顺便看看其他妹子,玩玩王者荣耀,上个厕所等等。
2. IO复用又包括select, poll, epoll模式那么它们的区别是什么?
2.1. select
一个女生下楼,select大妈都不知道这个是不是你的女神,她需要一个一 个询问,并且select大妈能力还有限,最多一次帮你监视1024个妹子。
2.2. poll
poll大妈不限制盯着女生的数量,只要是经过宿舍楼门口的女生,都会帮你去问是不是你女神。
2.3. epoll
epoll大妈不限制盯着女生的数量,并且也不需要一个一个去问。那么如何做呢? epoll大妈会为每个进宿舍楼的女生脸上贴上一一个大字条,上面写上女生自己的名字,只要女姓下楼了,epoll大妈就知道这个是不是你女神了,然后大妈再通知你。