netty學習01-傳統IO和NIO的比較

傳統IO的特點

有兩個阻塞點:

1. server.accept();接收連接

2.InputStream.read(bytes);讀取數據

單線程下只能有一個客戶端連接,用線程池可以解決單個客戶端連接的問題,但是太消耗性能。

NIO的特點

NIO是非阻塞的

傳統IO在通道中讀取數據的時候,如果沒有數據,會一直等待;而NIO(非阻塞IO)則會實時返回。

NIO可以單線程處理多客戶端連接。

Selector 是NIO核心 ,負載監聽ServerSocketChannel與SocketChannel  ,支持單線程連多個客戶端;類似通道管理器而且底層是c實現的;線程擁有一個selector就可以支持多個客戶端。

 

NIO和傳統IO的比較

NIO的ServerSocketChannel類似於傳統IO的ServerSocket,用於設置連接的屬性。

NIO的SocketChannel 類似於傳統IO的Socket,用於數據的傳輸

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章