java SelectableChannel的使實例用法講解
(1)SelectableChannel 是一個抽象類,它實現(xiàn)了 Channel 接口,這個類比較特殊。
(2)SelectableChannel 可以被 Selector 用來多路復(fù)用,不過首先需要調(diào)用 selectableChannel.configureBlocking(false) 調(diào)整為非阻塞模式。
2、實例SelectionKey register(Selector sel, int ops)SelectionKey register(Selector sel, int ops, Object att) 第一個參數(shù)代表要注冊的 Selector 實例。 第二個參數(shù)代表本通道感興趣的操作,這些都定義在 SelectionKey 類中。 第三個參數(shù) Object att 是注冊時的附件,也就是可以在注冊的時候帶點什么東西過去。
知識點擴展:
定義自己的SelectableChannel
我的理解是java實現(xiàn)基于unix select()c函數(shù)(我似乎記得 Windows實現(xiàn)略有不同)
根據(jù)操作系統(tǒng)(和JVM args!),調(diào)用不同的本機OS函數(shù),但它們的共同點是它的本機代碼 ? 基本功能不是用Java實現(xiàn)的.
如果你想創(chuàng)建一個訪問底層操作系統(tǒng)的select()(或類似)的lib(它確實依賴于文件句柄),我認(rèn)為你幾乎被迫使用JNI.我不相信有任何方法可以解決它.
Java中的Selector / SelectableChannel實際上是select()可以做的貧血子集.
到此這篇關(guān)于java SelectableChannel的使實例用法講解的文章就介紹到這了,更多相關(guān)java SelectableChannel的使用內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 使用ajax跨域調(diào)用springboot框架的api傳輸文件2. ASP.NET MVC把數(shù)據(jù)庫中枚舉項的數(shù)字轉(zhuǎn)換成文字3. 通過python調(diào)用adb命令對App進行性能測試方式4. python 實現(xiàn)mysql自動增刪分區(qū)的方法5. Python查詢oracle數(shù)據(jù)庫速度慢的解決方案6. Python matplotlib畫圖時圖例說明(legend)放到圖像外側(cè)詳解7. python新手學(xué)習(xí)可變和不可變對象8. PHP實現(xiàn)圖片旋轉(zhuǎn)的方法詳解9. vue中關(guān)于checkbox使用的問題10. idea右鍵沒有java class選項問題解決方案
