什么是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多路復用機制,緩沖區提高讀寫效率;