溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SelectableChannel怎么在java中使用

發(fā)布時(shí)間:2021-03-31 16:55:11 來源:億速云 閱讀:134 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)SelectableChannel怎么在java中使用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1、說明

(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()可以做的貧血子集.

上述就是小編為大家分享的SelectableChannel怎么在java中使用了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI