黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java Nio詳解

Java Nio詳解

更新時間:2022-07-25 11:00:01 來源:動力節(jié)點 瀏覽1500次

Java NIO (New IO) 是 Java 的替代 IO API,意味著標(biāo)準(zhǔn) Java IO和Java Networking API 的替代品。Java NIO 提供了與傳統(tǒng) IO API 不同的 IO 編程模型。注意:有時 NIO 被聲稱是指Non-blocking IO。然而,這并不是原本的意思。此外,NIO API 的某些部分實際上是阻塞的——例如文件 API——所以標(biāo)簽“非阻塞”會有點誤導(dǎo)。

Java NIO:非阻塞 IO

Java NIO 使您能夠進行非阻塞 IO。例如,線程可以要求通道將數(shù)據(jù)讀入緩沖區(qū)。當(dāng)通道將數(shù)據(jù)讀入緩沖區(qū)時,線程可以做其他事情。一旦數(shù)據(jù)被讀入緩沖區(qū),線程就可以繼續(xù)處理它。將數(shù)據(jù)寫入通道也是如此。

Java NIO:通道和緩沖區(qū)

在標(biāo)準(zhǔn) IO API 中,您使用字節(jié)流和字符流。在 NIO 中,您使用通道和緩沖區(qū)。數(shù)據(jù)總是從通道讀入緩沖區(qū),或從緩沖區(qū)寫入通道。

Java NIO:選擇器

Java NIO 包含“選擇器”的概念。選擇器是一個對象,可以監(jiān)視多個通道的事件(例如:連接打開、數(shù)據(jù)到達等)。因此,單個線程可以監(jiān)視多個通道的數(shù)據(jù)。

Java NIO 概述

Java NIO 由以下核心組件組成:

頻道

緩沖器

選擇器

Java NIO 有比這些更多的類和組件,但在我看來Channel,Buffer 和Selector構(gòu)成了 API 的核心。其余的組件,例如 Pipe和FileLock只是與三個核心組件一起使用的實用程序類。因此,我將在本 NIO 概述中重點介紹這三個組件。其他組件在本教程其他地方的其自己的文本中進行了解釋。請參閱本頁右上角的菜單。

通道和緩沖區(qū)

通常,NIO 中的所有 IO 都以Channel. AChannel有點像流。從Channel數(shù)據(jù)中可以讀入一個Buffer. 數(shù)據(jù)也可以從 aBuffer寫入 a Channel。這是一個例子:

Java NIO:Channels將數(shù)據(jù)讀入Buffers,Buffers將數(shù)據(jù)寫入Channels

有幾種Channel和Buffer類型。Channel以下是Java NIO 中的主要實現(xiàn)列表:

文件頻道

數(shù)據(jù)報頻道

套接字通道

服務(wù)器套接字通道

如您所見,這些通道涵蓋了 UDP + TCP 網(wǎng)絡(luò) IO 和文件 IO。

這些類也有一些有趣的接口,但為了簡單起見,我將把它們排除在 Java NIO 概述之外。在本 Java NIO 教程的其他文本中,將在相關(guān)的地方對它們進行解釋。

Buffer以下是Java NIO 中的核心實現(xiàn)列表:

字節(jié)緩沖區(qū)

字符緩沖區(qū)

雙緩沖

浮動緩沖區(qū)

整數(shù)緩沖區(qū)

長緩沖區(qū)

短緩沖

這些Buffer涵蓋了您可以通過 IO 發(fā)送的基本數(shù)據(jù)類型:byte、short、int、long、float、double 和 characters。

Java NIO 還有一個MappedByteBuffer與內(nèi)存映射文件一起使用的。不過,我將把它Buffer排除在概述之外。

選擇器

ASelector允許單個線程處理多個Channel's。如果您的應(yīng)用程序打開了許多連接(通道),但每個連接上的流量很低,這會很方便。例如,在聊天服務(wù)器中。

這是使用 aSelector處理 3的線程的圖示Channel:

要使用 a Selector,您可以使用它注冊Channel's。然后你稱之為 select()方法。此方法將阻塞,直到有一個已注冊通道的事件準(zhǔn)備好。一旦方法返回,線程就可以處理這些事件。事件的示例是傳入連接、接收到的數(shù)據(jù)等。

通過上述介紹,相信大家對Java Nio已經(jīng)有所了解,大家如果想了解更多相關(guān)知識,可以關(guān)注一下動力節(jié)點的Java基礎(chǔ)教程,里面有更豐富的知識等著大家去學(xué)習(xí),希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久99精品视免费看 | 中文字幕影院 | 中文字幕第38页永久乱码 | 97精品在线视频 | 欧美性受xxxx喷水性欧洲 | 噜噜噜天天躁狠狠躁夜夜精品 | 一级毛片在线观看免费 | 国产第二十三页浮力影院 | 亚洲欧洲第一页 | 欧美视频免费一区二区三区 | 日本三级带日本三级带黄首页 | 日韩一二三 | 国产亚洲成归v人片在线观看 | 一区二区日本视频 | 免费大片黄在线现看国语 | 99成人在线观看 | 久久尹人香蕉国产免费天天 | 婷婷色婷婷 | 欧美一区二区三区不卡免费 | 高清视频黄色录像免费 | 一级片在线免费 | 国产精品女丝袜白丝袜 | 黑人黄色毛片 | 久久免费视频播放 | 91啦在线播放 | 国产高清视频 | 亚洲免费视频网 | 色噜噜狠狠狠狠色综合久 | 中文字幕第一页在线视频 | 精品欧美日韩一区二区三区 | 日韩欧美三级在线 | 久久午夜羞羞影院免费观看 | 亚洲欧美专线 | 男女午夜激情 | 伊人网综合在线视频 | 天天夜碰日日摸日日澡 | 性夜黄a爽爽免费视频国产 性夜黄 a 爽免费看 | 欧美一区二区三区免费不卡 | 亚洲欧美视频一级 | 成年人在线免费观看视频网站 | 亚洲精品三级 |