1.传统的多线程和多进程并发模型,每进来一个新的io流就会分配一个新的进程/线程进行管理
2.I/O多路复用,把多个I/O的阻塞复用到同一个select的阻塞上。select、pselect、poll、epoll都是I/O多路复用的具体实现。
poll是select的增强版
2.I/O多路复用,把多个I/O的阻塞复用到同一个select的阻塞上。select、pselect、poll、epoll都是I/O多路复用的具体实现。
poll是select的增强版
epoll是poll的增强版
reactor模型
一个线程负责接收所有的客户端的connect,然后分发给线程池进行read,解码和业务处理、编码、发送操作。也就是一个selector,当有新的socketChannel也是注册到这个selector。
主从reactor模型
一个线程进行accept分发,是分发到sub reactor,当有新的读事件以后,不再是注册到acceptor负责的那个selector(主线程),而是注册到sub reactor的selector上。当有读事件的时候,就是由sub reactor线程分发给工作线程