java SelectableChannel的使實例用法講解
(1)SelectableChannel 是一個抽象類,它實現了 Channel 接口,這個類比較特殊。
(2)SelectableChannel 可以被 Selector 用來多路復用,不過首先需要調用 selectableChannel.configureBlocking(false) 調整為非阻塞模式。
2、實例SelectionKey register(Selector sel, int ops)SelectionKey register(Selector sel, int ops, Object att) 第一個參數代表要注冊的 Selector 實例。 第二個參數代表本通道感興趣的操作,這些都定義在 SelectionKey 類中。 第三個參數 Object att 是注冊時的附件,也就是可以在注冊的時候帶點什么東西過去。
知識點擴展:
定義自己的SelectableChannel
我的理解是java實現基于unix select()c函數(我似乎記得 Windows實現略有不同)
根據操作系統(和JVM args!),調用不同的本機OS函數,但它們的共同點是它的本機代碼 ? 基本功能不是用Java實現的.
如果你想創建一個訪問底層操作系統的select()(或類似)的lib(它確實依賴于文件句柄),我認為你幾乎被迫使用JNI.我不相信有任何方法可以解決它.
Java中的Selector / SelectableChannel實際上是select()可以做的貧血子集.
到此這篇關于java SelectableChannel的使實例用法講解的文章就介紹到這了,更多相關java SelectableChannel的使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: