簡述NIO和IO的區別,Java NIO和IO的區別

時間 2025-05-05 12:20:03

j**a nio和io的區別

1樓:曾楊氏汝雁

nio是new

io,是io的公升級版。

傳統的socket

io中,需要為每個連線建立乙個執行緒,當併發的連線數量非常巨大時,執行緒所佔用的棧記憶體和cpu執行緒切換的開銷將非常巨大。

使用nio,不再需要為每個執行緒建立單獨的執行緒,可以用乙個含有限數量執行緒的執行緒池,甚至乙個執行緒來為任意數量的連線服務。

由於執行緒數量小於連線數量,所以每個執行緒進行io操作時就不能阻塞,如果阻塞的話,有些連線就得不到處理,nio提供了這種非阻塞的能力。

參考:csdn部落格。

什麼是nio,與傳統io區別

2樓:網友

區別:1、增加了乙個角色,要有乙個專門負責收集客人需求的人。nio裡對應的就是selector。

2、由阻塞服務方式改為非阻塞服務了,客人吃著的時候服務員不用一直侯在客人旁邊了。傳統的io操作,比如read(),當沒有資料可讀的時候,執行緒一直阻塞被佔用,直到資料到來。nio中沒有資料可讀時,read()會立即返回0,執行緒不會阻塞。

j**a中nio與普通io有什麼優勢?

3樓:金牛滿堂彩

1,nio的主要作用就是用來解決速度差異的。舉個例子:計算機處理的速度,和使用者按鍵盤的速度,這兩者的速度相差懸殊。

2,如果按照經典的方法:乙個使用者設定乙個執行緒,專門等待使用者的輸入,無形中就造成了嚴重的資源浪費,每乙個執行緒都需要珍貴的cpu時間片,由於速度差異造成了在這個互動執行緒中的cpu都用來等待。

3,傳統的阻塞式io,每個連線必須要開乙個執行緒來處理,並且沒處理完執行緒不能退出。

4,非阻塞式io,由於基於反應器模式,用於事件多路分離和分派的體系結構模式,所以可以利用執行緒池來處理。事件來了就處理,處理完了就把執行緒歸還。

5,而傳統阻塞方式不能使用執行緒池來處理,假設當前有10000個連線,非阻塞方式可能用1000個執行緒的執行緒池就搞定了,而傳統阻塞方式就需要開10000個來處理。如果連線數較多將會出現資源不足的情況。非阻塞的核心優勢就在這裡。

4樓:淡然的神仙

i/o 屬於流io

nio 屬於塊io

簡單的來說 執行效率 nio 要快的多 ,其中最重要的就是 資料打包和傳輸方式。

簡述cookies和session的區別

1 cookie 和session的區別是 cookie資料儲存在客戶端,session資料儲存在伺服器端。2 兩個都可以用來存私密的東西,同樣也都有有效期的說法,區別在於session是放在伺服器上的,過期與否取決於服務期的設定,cookie是存在客戶端的,過去與否可以在cookie生成的時候設定...

簡述海運提單和海運單的區別,簡述海運提單和海運單的區別

進口產品資料庫 海運單與提單的區別 海運單 seawaybill 又稱海上運送單或海上貨運單,它是 承運人向託運人或其 人表明貨物已收妥待裝的單據,是一種不可轉讓的單據,即不須以在目的港揭示該單據作為收貨條件,不須持單據寄到,船主或其 人可憑收貨人收到的貨到通知或其身份證明而向其交貨 引自1978年...

簡述情緒和情感之間的區別和聯絡,1 簡述情緒和情感的區別和聯絡 答 情緒

一 情緒和情感的區別 我們一直將情緒和情感作為一個統一的心理過程來討論,但從產生的基礎和特徵表現上來看,二者有所區別。首先,情緒出現較早,多與人的生理性需要相聯絡 情感出現較晚,多與人的社會性需要相聯絡。嬰兒一生下來,就有哭 笑等情緒表現,而且多與食物 水 溫暖 睏倦等生理性需要相關 情是在幼兒時期...