java SelectableChannel的使實例用法講解
1、說明
(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java使用iTextPDF生成PDF文件的實現(xiàn)方法
這篇文章主要介紹了Java使用iTextPDF生成PDF文件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02idea向System.getenv()添加系統(tǒng)環(huán)境變量的操作
這篇文章主要介紹了idea向System.getenv()添加系統(tǒng)環(huán)境變量的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06Springboot+rabbitmq實現(xiàn)延時隊列的兩種方式
這篇文章主要介紹了Springboot+rabbitmq實現(xiàn)延時隊列的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05