JAVA_NIO ,走进JavaNIO的世界
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
Java NIO: Channels and Buffers//通道和緩沖區(qū)
Java NIO: Non-blocking IO//異步IO
?//一個(gè)線程可以請(qǐng)求通道讀取數(shù)據(jù)到buffer中,當(dāng)通道讀取數(shù)據(jù)到buffer中的時(shí)候,這個(gè)線程依然可以做其它的事情,buffer數(shù)據(jù)讀到channel也是一樣的
Java NIO: Selectors
//一個(gè)選擇器可以對(duì)象可以管理多個(gè)通道比如 connection opened, data arrived,這樣的話 一個(gè)線程就可以管理多個(gè)通道做一些數(shù)據(jù)的操作
Channels and Buffers
主要的實(shí)現(xiàn) buffer的類
??? ByteBuffer
??? CharBuffer
??? DoubleBuffer
??? FloatBuffer
??? IntBuffer
??? LongBuffer
??? ShortBuffer
主要的 channel
??? FileChannel
??? DatagramChannel
??? SocketChannel
??? ServerSocketChannel
?? ?這些通道可以被用做 UDP + TCP network IO, and file IO
?? ?
?? ?Selectors//適用于低業(yè)務(wù)量
?? ??? ?
?? ?
?? ?A Thread uses a Selector to handle 3 Channel's
?? ?
?? ?一個(gè)selector 允許一個(gè)線程處理多個(gè)通道,假使你有多個(gè)連接(channel),但是適用于低業(yè)務(wù)量,使用selector 注冊(cè)在通道上? 然后調(diào)用select()方法,這個(gè)方法將會(huì)阻塞,直到有一個(gè)或者多個(gè)注冊(cè)在通道上的事件返回,
?? ?一旦方法返回,線程便可以處理這些事件,例如incoming connection(鏈接到來(lái)), data received(數(shù)據(jù)接收)
//未完待續(xù)。。。
轉(zhuǎn)載于:https://my.oschina.net/u/876290/blog/367680
總結(jié)
以上是生活随笔為你收集整理的JAVA_NIO ,走进JavaNIO的世界的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Hibernate 性能优化之二级缓存
- 下一篇: Oren NayarModel