當前位置:編程學習大全網 - 編程軟體 - 什麽是NIO異步通信?

什麽是NIO異步通信?

1.NIO是非阻塞IO,相對於傳統的IO而言,解決了兩個問題:

1)讀寫操作不再被同步阻塞

2)壹個服務端在某個時刻只能接收壹個客戶端的接入,通過啟動新線程來提高接入會帶來線程過載問題

2.NIO和普通IO的區別

傳統的Socket通信方式如下:

1)接收連接;

2)讀取請求消息,進行業務處理;

3)返回響應給客戶端

以上三種操作全部為同步阻塞,在業務量大的情況下,壹旦業務處理速度變慢,服務端返回給客戶端的響應將明顯下降,系統的吞吐量也嚴重下降。通常的做法是擴充服務端的線程,同時啟動多個監聽線程來並行處理客戶端的接入,但是這樣帶來的壹個副作用是線程數量將迅速增加,資源的損耗將進壹步加劇。

NIO通信的原理如下:NIO采用了Reactor模式(類似於觀察者模式,不同之處在於Reactor模式可以監聽多個主題),通過壹個多路復用器來監聽多個客戶端的網絡句柄,壹旦監聽到客戶端的請求消息,將對應的請求消息轉發給對應的Handler(業務處理類),讀和寫本身並不阻塞線程,如果沒有請求消息,多路復用器會阻塞在select()操作之上。

  • 上一篇:什麽叫做面向對象?
  • 下一篇:三菱伺服電機驅動器顯示AL50怎麽調參數
  • copyright 2024編程學習大全網