java SelectableChannel的使實(shí)例用法講解
(1)SelectableChannel 是一個(gè)抽象類,它實(shí)現(xiàn)了 Channel 接口,這個(gè)類比較特殊。
(2)SelectableChannel 可以被 Selector 用來多路復(fù)用,不過首先需要調(diào)用 selectableChannel.configureBlocking(false) 調(diào)整為非阻塞模式。
2、實(shí)例SelectionKey register(Selector sel, int ops)SelectionKey register(Selector sel, int ops, Object att) 第一個(gè)參數(shù)代表要注冊的 Selector 實(shí)例。 第二個(gè)參數(shù)代表本通道感興趣的操作,這些都定義在 SelectionKey 類中。 第三個(gè)參數(shù) Object att 是注冊時(shí)的附件,也就是可以在注冊的時(shí)候帶點(diǎn)什么東西過去。
知識點(diǎn)擴(kuò)展:
定義自己的SelectableChannel
我的理解是java實(shí)現(xiàn)基于unix select()c函數(shù)(我似乎記得 Windows實(shí)現(xiàn)略有不同)
根據(jù)操作系統(tǒng)(和JVM args!),調(diào)用不同的本機(jī)OS函數(shù),但它們的共同點(diǎn)是它的本機(jī)代碼 ? 基本功能不是用Java實(shí)現(xiàn)的.
如果你想創(chuàng)建一個(gè)訪問底層操作系統(tǒng)的select()(或類似)的lib(它確實(shí)依賴于文件句柄),我認(rèn)為你幾乎被迫使用JNI.我不相信有任何方法可以解決它.
Java中的Selector / SelectableChannel實(shí)際上是select()可以做的貧血子集.
到此這篇關(guān)于java SelectableChannel的使實(shí)例用法講解的文章就介紹到這了,更多相關(guān)java SelectableChannel的使用內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Python實(shí)現(xiàn)迪杰斯特拉算法過程解析2. 基于Android FileProvider 屬性配置詳解及FileProvider多節(jié)點(diǎn)問題3. 詳解Python模塊化編程與裝飾器4. Spring security 自定義過濾器實(shí)現(xiàn)Json參數(shù)傳遞并兼容表單參數(shù)(實(shí)例代碼)5. Python如何進(jìn)行時(shí)間處理6. 詳解java中static關(guān)鍵詞的作用7. JavaScript實(shí)現(xiàn)頁面動(dòng)態(tài)驗(yàn)證碼的實(shí)現(xiàn)示例8. JavaScript中的AOP編程的基本實(shí)現(xiàn)9. python使用ctypes庫調(diào)用DLL動(dòng)態(tài)鏈接庫10. python裝飾器三種裝飾模式的簡單分析
