當有N個新的客戶端接入的時候,偽非同步IO通信將客戶端的socket封裝成一個Task投遞到後端的線程池中進行處理,JDK的線程池負責維護一個消息隊列和N個活躍的線程,它與BIO通信模型最大的不同點是:偽非同步IO通信的服務端不再針對每一個客戶端都創建一個獨立的線程,它是由一個線程池來統一處理所有客戶端的接入請求。當有大量客戶端接入的時候,並發量不斷上漲,將會出現線程池阻塞問題。
AIO通信:它是連接註冊讀寫事件和回調函數,讀寫方法非同步,同時它是主動通知程序。AIO非同步通信提供了兩種方式獲取操作結果:第一種方式是通過java.util.concurrent的Future類來表示非同步操作的結果;第二種方式是在執行非同步操作的時候傳入一個java.nio.channels.CompletionHandler介面的實現類作為操作完成回調。NIO的非同步套接字回調,是真正的非同步非阻塞IO,對應於Unix網路編程中的事件驅動IO,不需要通過多路復用器對被註冊的通道進行輪詢操作即可實現非同步讀寫,從而簡化NIO的編程模型。