一Java中的IO機(jī)制
BIO NIO AIO
二 BIO
主要實(shí)現(xiàn)方式 : InputStream和OutputStream,Reader和Writer;
三 NIO
主要實(shí)現(xiàn)方式 : NonBlock-IO : 構(gòu)建多路復(fù)用的,同步非阻塞的IO操作;1. NIO核心
Channels, Buffers, Selectors
2. NIO-Channels
① FileChannel;
② DatagramChannel;
③ SocketChannel;
④ ServerSocketChannel;3. NIO-Buffers
① ByteBuffer; ② CharBuffer;
③ DoubleBuffer; ④ FloatBuffer;
⑤ IntBuffer; ⑥ LongBuffer;
⑦ ShortBuffer; ⑧ MappedByteBuffer;4. NIO-Selectors
5. IO多路復(fù)用 : 調(diào)用系統(tǒng)級別的 select poll epoll
6. select poll epoll的區(qū)別
①連接數(shù)維度②FD劇增后的IO效率維度③消息傳遞方式維度
四 AIO
Asynchronous IO主要實(shí)現(xiàn)方式 : 基于事件和回調(diào)機(jī)制1. AIO如何進(jìn)一步加工處理結(jié)果?
基于回調(diào) : 實(shí)現(xiàn)CompletionHandler接口,調(diào)用時(shí)觸發(fā)回調(diào)函數(shù);
返回Future : 通過isDone()查看是否準(zhǔn)備好,通過get()等待返回?cái)?shù)據(jù);