netty:NIO模型--选择器(Selector)
生活随笔
收集整理的這篇文章主要介紹了
netty:NIO模型--选择器(Selector)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?1. java的NIO,用非阻塞的IO方式,可以用一個線程,處理多個的客戶連接,就會使用到Selector(選擇器).
?2. Selector能夠檢測多個注冊的通道上是否有事件發生(注意: 多個Channel以事件的方式可以注冊到同一個Selector)。
?3. 只有在 連接/通道 真正有讀寫事件發生時,才會進行讀寫,就大大地減少了系統開銷,并且不必為每個連接都創建一個線程,不用去維護多個線程。
?4. 避免了多線程之間的上下文切換導致的開銷。
PS: NIO中的ServerSocketChannel功能類似ServerSocket, SocketChannle功能類似Socket。
?
Selector是一個抽象類。
Selector相關方法說明:?
? ?1). select() // 阻塞 ? ? 2). select(1000) ?// 阻塞1000毫秒, 在1000毫秒后返回 ?3). wakeup() // 喚醒selector?
? ? 4). selectNow(); // 不阻塞, 立馬返回
?
?
總結
以上是生活随笔為你收集整理的netty:NIO模型--选择器(Selector)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: netty:IO模型
- 下一篇: 设计模式:装饰者模式(Decorator