什么是NIO多路复用机制?
答:1、采用一个线程维护多个TCP连接的IO操作;线程安全,支持高并发;
2、原理:NIO的选择器将多个不同的channel统一交给selector选择器进行管理;
3、NIO多路复用机制在不用的系统中存在差别,在window中选择器是select去轮循channel获取信息,Linux中选择器是epoll通过注册事件回调通知获取信息;
4、select中会存在空连接,就是只连接但不发送信息,且select中有数量限制,不能很好的支持高并发; linux操作就出现epoll实现事件驱动回调形式通知,不会存在空轮训的情况,只是对活跃的socket实现主动回调【有信息会主动通知】,这样的性能有很大的提升,避免了空连接,所以时间复杂度为是o(1)
NIO核心设计思想是什么
答:非阻塞式IO,选择器实现IO多路复用机制,缓冲区提高读写效率;