1. 程式人生 > >java nio的實現原理

java nio的實現原理

阻塞 3.3 keys div nbsp select 行數 多路復用 class

1 什麽是java nio

java nio就是java非阻塞io。

2 什麽是channel

channel是到打開的文件的連接,只要是支持讀寫操作的實體都可以稱為文件,文件可以是硬件設備、文件和網絡套接字等。

3 多路復用非阻塞IO的實現原理

3.1 Selector、selection keys和selectable channels一起來實現多路復用非阻塞IO。

3.2 什麽是多路復用

多路指的是多個channel、復用指的是多個channel復用一個線程來進行數據的讀寫。

3.3 什麽非阻塞IO

指的是被復用的線程是不會阻塞的,只要有chanel有數據,它就一直在工作,除非所有的路都沒有數據。

3.4 Selector的背後的實現原理

4 noi buffers

為什麽要弄這麽多的nio buffer?nio buffer有什麽用?

在進行標準io的時候因為只有一個chanel在用這個thread,因此不需要buffer,但是多個chanel復用的話,就會存在等待的chanel,這樣的話,有一個buffer緩存一下,處理上會更加方便。

java nio的實現原理