BIO:同步并阻塞,服務(wù)器實現(xiàn)模式為一個連接一個線程陈莽,即客戶端有連接請求時服務(wù)器端就需要啟動一個線程進行處理渤昌,如果這個連接不做任何事情會造成不必要的線程開銷锈至,當(dāng)然可以通過線程池機制改善。BIO方式適用于連接數(shù)目比較小且固定的架構(gòu)扇住,這種方式對服務(wù)器資源要求比較高缝其,并發(fā)局限于應(yīng)用中,JDK1.4以前的唯一選擇忌栅,但程序直觀簡單易理解车酣。
NIO:同步非阻塞,服務(wù)器實現(xiàn)模式為一個請求一個線程索绪,即客戶端發(fā)送的連接請求都會注冊到多路復(fù)用器上湖员,多路復(fù)用器輪詢到連接有I/O請求時才啟動一個線程進行處理。NIO方式適用于連接數(shù)目多且連接比較短(輕操作)的架構(gòu)瑞驱,比如聊天服務(wù)器娘摔,并發(fā)局限于應(yīng)用中,編程比較復(fù)雜唤反,JDK1.4開始支持凳寺。
AIO:異步非阻塞,服務(wù)器實現(xiàn)模式為一個有效請求一個線程彤侍,客戶端的I/O請求都是由OS先完成了再通知服務(wù)器應(yīng)用去啟動線程進行處理.AIO方式使用于連接數(shù)目多且連接比較長(重操作)的架構(gòu)肠缨,比如相冊服務(wù)器,充分調(diào)用OS參與并發(fā)操作盏阶,編程比較復(fù)雜晒奕,JDK7開始支持。