同步阻塞IO-BIO
实际使用场景:在Java中使用线程池的方式去连接数据库,使用的就是同步阻塞IO模型
同步非阻塞 IO-NIO(New IO)
如果涉及到IO操作,那么当前的线程不会被阻塞,而是会去处理其他业务代码,然后等过段时间再来查询 IO 交互是否完成
异步非阻塞 IO-AIO
IO操作已经完成后,再给线程发出通知
IO 多路复用
一个线程处理多个IO流;
在Linux中,操作系统提供了select、poll 和 epoll 三种 IO多路复用机制
select机制: 可以监听多少个socket? -- 1024 -- 需要遍历fd集合,才能找到就绪的描述符
poll机制:和select差不多,需要遍历fd集合,才能找到就绪的描述符。
epoll机制:可以监听就绪的fd