乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      N.Space: 一個(gè)NIO框架——Cindy簡(jiǎn)介

       asdfaasdfas 2007-06-21

      一個(gè)NIO框架——Cindy簡(jiǎn)介

      Cindy簡(jiǎn)介 

      (作者Blog: http://spaces./members/crmky
       
      Cindy是一個(gè)基于java nio的I/O框架,支持TCP/UDP單播/UDP多播/Pipe,為應(yīng)用程序提供了一個(gè)統(tǒng)一的接口去實(shí)現(xiàn)異步和同步的網(wǎng)絡(luò)操作。

      java io 包提供了一個(gè)簡(jiǎn)單的模型去處理網(wǎng)絡(luò)流,它讀寫(xiě)均為阻塞操作,在一般的應(yīng)用里,用戶總是開(kāi)啟一個(gè)獨(dú)立線程或一個(gè)線程池去處理這些IO操作。它非常簡(jiǎn)單易用, 但在擴(kuò)展性和效率上存在著一些問(wèn)題。如果用戶只需要一兩個(gè)網(wǎng)絡(luò)連接,開(kāi)啟幾個(gè)獨(dú)立線程操作無(wú)傷大雅,但是如果面對(duì)服務(wù)器端的成百上千個(gè)連接,采用 java io提供的機(jī)制,就需要同時(shí)開(kāi)啟成百上千個(gè)線程,即使能夠處理過(guò)來(lái),花在線程上下文切換的時(shí)間也遠(yuǎn)遠(yuǎn)多于網(wǎng)絡(luò)操作的用時(shí)。

      在JDK 1.4 中,Java引入了nio包,除開(kāi)nio提供的一些其他功能外,最吸引人的就是引入了非阻塞IO的實(shí)現(xiàn)。但是直接使用nio中非阻塞I/O需要處理眾多異 常,維護(hù)狀態(tài),為應(yīng)用帶來(lái)不必要的復(fù)雜性。并且JDK 1.4中的nio包只實(shí)現(xiàn)了普通TCP/UDP單播/Pipe,JDK 5.0中引入了 SSLEngine類(lèi),使得基于非阻塞I/O的TCP可以支持SSL和TLS,未來(lái)在JDK 6.0才會(huì)加入對(duì)非阻塞I/O UDP多播的實(shí)現(xiàn)。如果應(yīng)用 程序只想使用同一個(gè)模型去操作網(wǎng)絡(luò)I/O,而不想關(guān)心這些諸多限制,那么Cindy是一個(gè)很好的選擇。

      目前基于nio的開(kāi)源I/O框架很 多,Cindy并不是唯一的選擇,比較好實(shí)現(xiàn)如Netty2、MINA等等。由于是Cindy的作者,對(duì)Cindy的了解程度要高于對(duì)其他框架的了解程 度,這里所做的比較只是基于作者自身的看法,可能會(huì)有失偏頗。在你進(jìn)行選擇之前,你應(yīng)該從你自身應(yīng)用的角度進(jìn)行仔細(xì)的比較。

      Netty2 具有很好的構(gòu)架,并且該框架非常有名,使用該框架的項(xiàng)目不少,這意味著開(kāi)發(fā)團(tuán)隊(duì)持續(xù)更新的動(dòng)力非常大(BTW,剛知道Netty2的開(kāi)發(fā)已經(jīng)停止了,抱 歉)。同時(shí)Netty2的文檔非常齊全,并且支持JMX(這是我不熟悉的領(lǐng)域,不做評(píng)論)。Netty2的缺點(diǎn)就是實(shí)現(xiàn)代碼的質(zhì)量不是非常好,最大的缺點(diǎn) 就是只支持普通的TCP。

      MINA是Netty2作者的一個(gè)新項(xiàng)目,該項(xiàng)目目前實(shí)現(xiàn)的版本已經(jīng)支持TCP/UDP/Pipe,并且由它的 Roadmap上可得知將來(lái)會(huì)加入對(duì)JMX和容器的支持。我未曾使用過(guò)該項(xiàng)目,不過(guò)既然是Netty2作者的新項(xiàng)目,應(yīng)該也吸收了Netty2的優(yōu)點(diǎn),并 且對(duì)Netty2中的缺點(diǎn)做了改良。從該項(xiàng)目帶的Example來(lái)看,使用起來(lái)應(yīng)該是非常簡(jiǎn)單的。

      Cindy起源于Netty2之后,借 鑒了Netty2中MessageRecognizer類(lèi)的設(shè)計(jì),在當(dāng)前的版本中已經(jīng)全面支持普通TCP/Secure TCP/UDP單播/UDP多播 /Pipe,可以使用同一個(gè)模型進(jìn)行同步/異步IO處理,并且成功的應(yīng)用在JML項(xiàng)目中(Java Msn Messenger Library,開(kāi)源項(xiàng) 目,目前發(fā)布的版本基于Cindy老的版本),并且在目前公司的項(xiàng)目中也有實(shí)際使用。Cindy目前并不打算加入對(duì)JMX的支持(不熟悉),也沒(méi)有計(jì)劃加 入對(duì)容器的支持(這個(gè)應(yīng)該是應(yīng)用做的事情),我想保持Cindy核心的簡(jiǎn)潔和高效,最好能夠代替Socket/DatagramSocket的地位(簡(jiǎn)單 應(yīng)用的話也許還是使用這個(gè)更好:))。Cindy目前缺點(diǎn)是文檔相對(duì)較少以及應(yīng)用的項(xiàng)目比較少,希望這幾篇文檔能夠稍微彌補(bǔ)以下Cindy在這文檔方面的 不足。

      Cindy:http://cindy.

      Netty2:http:///dev/

      MINA:http://www./~trustin/mina-20050207/index.html

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多