java技術--BIO/NIO/AIO/Netty概念と違います。
11700 ワード
1.IOモデルの主要分類:
(1) (synchronous) IO (asynchronous) IO
(2) (blocking) IO (non-blocking)IO
(3) (blocking-IO) BIO
(4) (non-blocking-IO) NIO
(5) (synchronous-non-blocking-IO) AIO
2.BIO(同期閉塞I/O)(1)
(2)jdk1.4 io ,
(3) :
<1> (10 )
<2>BIO , ,
<3> ,
<4>
(4)BIO
<1>
<2> ,
3.NIO(同期非閉塞I/O)(1)
(2)
<1>
<2> IO
(3) :
<1>
<2> ,
(4)NIO
<1> ( )
<2> , , ,jdk1,4
4.AIO(非同期非閉塞I/O)(1) IO
(2) ,
(3)
<1> IO
(4) :
<1> , ,
(5)AIO
<1> ( )
<2> , OS , ,jdk1.7
<3>AIO NIO2.0
5.IOとNIOの違い(1)IO ,NIO
(2)IO ,NIO
(3)IO ,NIO (Selectors)
6.同期と非同期の違い(1) : , , , ,
(2) : , , , ,
(3)
7.渋滞と渋滞ではない(1) : IO
<1> read() write() ,
<2>
<3> ,
(2) :NIO
<1> , ,
<2> IO IO
<3>
<4>NIO
(3) ( 、 )
8.NIOの3つの核心概念(1) Buffer
<1>Buffer , NIO ,
<2>
2.1. I/O , Stream
<3>
3.1. (ByteBuffer),
3.2.
3.3. (limit)
3.4. Java ( Boolean)
(2) Channel
<1> , , Channel
<2> ,
<3> ,
<4>Channel , API,
4.1. UNIX , ,
<5>Channel
5.1.FileChannel:
5.2.DatagramChannel: UDP
5.3.SocketChannel: TCP
5.4.ServerSocketChannel: TCP ,
5.4.1. SocketChannel
(3) Selector
<1>Selector Channel
<2>Selector ,FileChannel ,
<3> :
3.1.Selector: , 、 Selector
3.2. SelectorKey: ,
<4> :
4.1. Selector:
4.2.socketChannel.register(selector, SelectionKey.OP_READ);
<5>
5.1.OP_ACCEPT: ,serviceSocketChannel
5.2.OP_READ: ,socketChannel
5.3.OP_WRITE: ,socketChannel
5.4.OP_CONNECT: ,socketChannel
9.NIOの応用(1)NIO 、 Java
(2) ,
(3)Dubbo Netty ,
(4)Jetty、Mina、Netty、Dubbo、ZooKeeper NIO
<1>Mina Apache
<2>Netty Jboss
<3>Dubbo
10.NIOフレーム(1)Netty Java NIO
<1>Netty 、
<2> 、
<3> JDK NIO,Netty API,
(2)Netty IO
<1>IO , api ,
<2> IO
<3> IO ,
(3)
<1> TCP ( socket channel),
<2> ( IO )
<3> ,
<4>Netty,Redis IO
<5> :select/poll/epoll recvfrom