java中的NIO基礎

來源:互聯網
上載者:User

標籤:選擇   sel   selector   哪些   soc   socket   使用   思想   pen   

在jdk1.4中,加入了一個新的包,java.nio.*,這個包引入了新的javaI/O庫,目的是為了提高速度,實際上,舊的I/O包也使用nio重新實現過。

相對於io,nio中的這個n代表什麼呢?《java編程思想》直接把小標題取名為"新I/O",另一種說法是Non-blocking的首字母,不管怎樣,nio也確實是一種新的處理非阻塞的IO。

NIO的幾個核心組成部分:Chennels(通道),Buffers(緩衝),Selectors(選取器)。

我們可以把通道(Channel)想是一個裝滿水的大水缸,而緩衝(Buffer)則是水桶,水桶可以裝滿水運送到別的地方,我們沒有與水缸有直接接觸,都是通過水桶(Buffer)直接互動。為了更快的運送更多的水,我們可以使用多個水桶,並可以選擇(Selector)哪些水桶怎麼裝水,當然我們不僅可以從水缸裡通過水桶取水還可以送水到水缸裡。

java中主要的Channel實現:

FileChannel:用於檔案IO,可以通過FileInputStream,FileOutputStream,RandomAccessFile對象的getChannel()擷取檔案通道。
DatagramChannel:是一個能收發UDP包的通道。使用DatagramChannel.open()開啟通道。
SocketChannel:是一個串連到TCP網路通訊端的通道。使用SocketChannel.open()擷取。
ServerSocketChannel:是一個針對面向流的偵聽通訊端的可選擇通道,使用ServerSocketChannel.open()擷取。

java中的NIO基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.