您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)SelectableChannel怎么在java中使用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
(1)SelectableChannel 是一個(gè)抽象類,它實(shí)現(xiàn)了 Channel 接口,這個(gè)類比較特殊。
(2)SelectableChannel 可以被 Selector 用來多路復(fù)用,不過首先需要調(diào)用 selectableChannel.configureBlocking(false) 調(diào)整為非阻塞模式。
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()可以做的貧血子集.
上述就是小編為大家分享的SelectableChannel怎么在java中使用了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。