自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

談java web server與io形式

開發(fā) 后端
JDK 是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境,Java工具和Java基礎(chǔ)的類庫。JDK是學(xué)好Java的第一步。本文介紹jdk6中的IO,希望對你有幫助。

jdk6中有兩種IO:BIO和NIO,真正的AIO還沒有實(shí)現(xiàn).

IO操作在操作系統(tǒng)中可以需要分為兩步,第一步為等待操作系統(tǒng)的數(shù)據(jù)準(zhǔn)備,第二步是從內(nèi)核態(tài)的buffer到用戶態(tài)的buffer的拷貝,BIO是在第一步準(zhǔn)備狀態(tài)就等待,直到讀取數(shù)據(jù)返回,NIO則是在第一步的時(shí)候,如果沒有數(shù)據(jù)就直接返回,過一段時(shí)間再繼續(xù)請求,當(dāng)發(fā)現(xiàn)第一步的數(shù)據(jù)準(zhǔn)備好了,然后在第二步仍然等待.多路復(fù)用的NIO只是在第一步時(shí)候每一個(gè)操作都會注冊到多路復(fù)用器,這樣多路復(fù)用器進(jìn)行輪詢,查看每一個(gè)的操作的數(shù)據(jù)有沒有準(zhǔn)備好,準(zhǔn)備好的通知這個(gè)操作讀取數(shù)據(jù),第二步還是需要等待的。

AIO則是第一步的時(shí)候操作請求后返回,直到第二步已經(jīng)完成,然后想辦法通知這個(gè)操作數(shù)據(jù)已經(jīng)準(zhǔn)備好 。

java web server對于jdk的IO的形式,出現(xiàn)了三種http請求的處理方式:

1.BIO處理方式 2.NIO處理方式 3.Async 處理方式

BIO處理方式

這種是最簡單的處理方式,代碼也好編寫,基本上是一個(gè)連接一個(gè)線程模式,這樣在請求上來的時(shí)候,由于受限于服務(wù)器的內(nèi)存大小,cpu大小,線程數(shù)上限大小,是不能達(dá)到一個(gè)很高的并發(fā)數(shù)的,再者,這種模式的內(nèi)存和cpu都很高,對應(yīng)用來說不是個(gè)好現(xiàn)象

NIO處理方式

NIO的最重要的地方是當(dāng)一個(gè)連接創(chuàng)建后,不需要對應(yīng)一個(gè)線程,這個(gè)連接會被注冊到多路復(fù)用器上面,所以所有的連接只需要一個(gè)線程就可以搞定,當(dāng)這個(gè)線程中的多路復(fù)用器進(jìn)行輪詢的時(shí)候,發(fā)現(xiàn)連接上有請求的話,才開啟一個(gè)線程進(jìn)行處理,也就是一個(gè)請求一個(gè)線程模式

Async 處理方式

在NIO的處理方式中,當(dāng)一個(gè)請求來的話,開啟線程進(jìn)行處理,可能會等待后端應(yīng)用的資源(JDBC連接等),其實(shí)這個(gè)線程就被阻塞了,當(dāng)并發(fā)上來的話,還是會有BIO一樣的問題

HTTP/1.1出現(xiàn)后,有了Http長連接,這樣除了超時(shí)和指明特定關(guān)閉的http header外,這個(gè)鏈接是一直打開的狀態(tài)的,
這樣在NIO處理中可以進(jìn)一步的進(jìn)化,在后端資源中可以實(shí)現(xiàn)資源池或者隊(duì)列,當(dāng)請求來的話,開啟的線程把請求和請求數(shù)據(jù)傳送給后端資源池或者隊(duì)列里面就返回,并且在全局的地方保持住這個(gè)現(xiàn)場(哪個(gè)連接的哪個(gè)請求等)。

這樣前面的線程還是可以去接受其他的請求,而后端的應(yīng)用的處理只需要執(zhí)行隊(duì)列里面的就可以了,這樣請求處理和后端應(yīng)用是異步的.當(dāng)后端處理完,到全局地方得到現(xiàn)場,產(chǎn)生響應(yīng). 這個(gè)就實(shí)現(xiàn)了異步處理。

BIO就是一個(gè)連接一個(gè)線程

NIO就是一個(gè)請求一個(gè)線程

Async就是一個(gè)有效請求一個(gè)線程

希望通過本文的閱讀,能夠給你帶來幫助。

【編輯推薦】

  1. Java多線程編程基礎(chǔ)之線程對象
  2. JAVA入門 基于Java的移動游戲開發(fā)
  3. JAVA開發(fā) 分析JNI標(biāo)準(zhǔn)原理
  4. 談JAVA靜態(tài)載入的兩種方式
  5. 淺談JAVA中如何利用socket進(jìn)行網(wǎng)絡(luò)編程(一)
責(zé)任編輯:于鐵 來源: 博客園
相關(guān)推薦

2011-06-13 15:45:58

WEB標(biāo)準(zhǔn)SEO

2011-06-13 16:54:25

WEB標(biāo)準(zhǔn)SEO

2014-11-11 09:17:41

2011-06-13 15:25:45

SEOWEB標(biāo)準(zhǔn)

2009-10-30 11:07:04

VB.NET Syst

2010-01-26 10:00:30

Google工程師Web

2010-06-23 09:23:56

SQL Server

2023-11-01 11:07:05

Linux高性能網(wǎng)絡(luò)編程線程

2010-08-04 15:22:42

VMwareNFS

2009-07-01 14:42:30

JSP和XML

2012-06-18 10:59:12

WEB開發(fā)項(xiàng)目

2011-03-15 17:36:24

SQL Server數(shù)據(jù)遷移云端

2012-02-22 22:31:18

Nginx開源

2012-02-22 22:56:19

開源Apache

2012-08-15 14:14:33

2011-03-14 13:40:02

移動Web架構(gòu)人人網(wǎng)

2009-04-20 10:19:14

求職薪酬技巧

2012-08-20 09:45:18

SQL Server

2009-02-24 09:48:22

java軟件開發(fā)技術(shù)人員

2012-11-01 09:16:50

思科軟件定義網(wǎng)絡(luò)EMC
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號