欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

NIO有哪些組成部分-創(chuàng)新互聯(lián)

這篇文章主要介紹“NIO有哪些組成部分”,在日常操作中,相信很多人在NIO有哪些組成部分問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”NIO有哪些組成部分”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習吧!

創(chuàng)新互聯(lián)專注于當雄企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,成都商城網(wǎng)站開發(fā)。當雄網(wǎng)站建設(shè)公司,為當雄等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

Buffer:與Channel進行交互,數(shù)據(jù)是從Channel讀入緩沖區(qū),從緩沖區(qū)寫入Channel中的

flip方法 : 反轉(zhuǎn)此緩沖區(qū),將position給limit,然后將position置為0,其實就是切換讀寫模式

clear方法 :清除此緩沖區(qū),將position置為0,把capacity的值給limit。

rewind方法 : 重繞此緩沖區(qū),將position置為0

DirectByteBuffer可減少一次系統(tǒng)空間到用戶空間的拷貝。但Buffer創(chuàng)建和銷毀的成本更高,不可控,通常會用內(nèi)存池來提高性能。直接緩沖區(qū)主要分配給那些易受基礎(chǔ)系統(tǒng)的本機I/O 操作影響的大型、持久的緩沖區(qū)。如果數(shù)據(jù)量比較小的中小應(yīng)用情況下,可以考慮使用heapBuffer,由JVM進行管理。

Channel:表示 IO 源與目標打開的連接,是雙向的,但不能直接訪問數(shù)據(jù),只能與Buffer 進行交互。通過源碼可知,F(xiàn)ileChannel的read方法和write方法都導(dǎo)致數(shù)據(jù)復(fù)制了兩次!

Selector可使一個單獨的線程管理多個Channel,open方法可創(chuàng)建Selector,register方法向多路復(fù)用器器注冊通道,可以監(jiān)聽的事件類型:讀、寫、連接、accept。注冊事件后會產(chǎn)生一個SelectionKey:它表示SelectableChannel 和Selector 之間的注冊關(guān)系,wakeup方法:使尚未返回的第一個選擇操作立即返回,喚醒的

原因是:注冊了新的channel或者事件;channel關(guān)閉,取消注冊;優(yōu)先級更高的事件觸發(fā)(如定時器事件),希望及時處理。

Selector在Linux的實現(xiàn)類是EPollSelectorImpl,委托給EPollArrayWrapper實現(xiàn),其中三個native方法是對epoll的封裝,而EPollSelectorImpl. implRegister方法,通過調(diào)用epoll_ctl向epoll實例中注冊事件,還將注冊的文件描述符(fd)與SelectionKey的對應(yīng)關(guān)系添加到fdToKey中,這個map維護了文件描述符與SelectionKey的映射。

fdToKey有時會變得非常大,因為注冊到Selector上的Channel非常多(百萬連接);過期或失效的Channel沒有及時關(guān)閉。fdToKey總是串行讀取的,而讀取是在select方法中進行的,該方法是非線程安全的。

Pipe:兩個線程之間的單向數(shù)據(jù)連接,數(shù)據(jù)會被寫到sink通道,從source通道讀取

NIO的服務(wù)端建立過程:Selector.open():打開一個Selector;ServerSocketChannel.open():創(chuàng)建服務(wù)端的Channel;bind():綁定到某個端口上。并配置非阻塞模式;register():注冊Channel和關(guān)注的事件到Selector上;select()輪詢拿到已經(jīng)就緒的事件。

到此,關(guān)于“NIO有哪些組成部分”的學(xué)習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習,快去試試吧!若想繼續(xù)學(xué)習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

當前題目:NIO有哪些組成部分-創(chuàng)新互聯(lián)
瀏覽路徑:http://www.chinadenli.net/article6/dhchig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作外貿(mào)建站服務(wù)器托管定制網(wǎng)站網(wǎng)站維護品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)