java SelectableChannel的使實(shí)例用法講解
1、說(shuō)明
(1)SelectableChannel 是一個(gè)抽象類,它實(shí)現(xiàn)了 Channel 接口,這個(gè)類比較特殊。
(2)SelectableChannel 可以被 Selector 用來(lái)多路復(fù)用,不過(guò)首先需要調(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ù)代表要注冊(cè)的 Selector 實(shí)例。
- 第二個(gè)參數(shù)代表本通道感興趣的操作,這些都定義在 SelectionKey 類中。
- 第三個(gè)參數(shù) Object att 是注冊(cè)時(shí)的附件,也就是可以在注冊(cè)的時(shí)候帶點(diǎn)什么東西過(guò)去。
知識(shí)點(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è)訪問(wèn)底層操作系統(tǒng)的select()(或類似)的lib(它確實(shí)依賴于文件句柄),我認(rèn)為你幾乎被迫使用JNI.我不相信有任何方法可以解決它.
Java中的Selector / SelectableChannel實(shí)際上是select()可以做的貧血子集.
到此這篇關(guān)于java SelectableChannel的使實(shí)例用法講解的文章就介紹到這了,更多相關(guān)java SelectableChannel的使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringCloud Eureka 服務(wù)注冊(cè)實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了SpringCloud Eureka 服務(wù)注冊(cè)實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
Spring?Security實(shí)現(xiàn)統(tǒng)一登錄與權(quán)限控制的示例代碼
這篇文章主要介紹了Spring?Security實(shí)現(xiàn)統(tǒng)一登錄與權(quán)限控制,本文通過(guò)示例代碼重點(diǎn)看一下統(tǒng)一認(rèn)證中心和業(yè)務(wù)網(wǎng)關(guān)的建設(shè),需要的朋友可以參考下2022-03-03
Java高級(jí)之虛擬機(jī)加載機(jī)制的實(shí)例講解
下面小編就為大家分享一篇Java高級(jí)之虛擬機(jī)加載機(jī)制的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Java輸出鏈表倒數(shù)第k個(gè)節(jié)點(diǎn)
這篇文章主要介紹了Java輸出鏈表倒數(shù)第k個(gè)節(jié)點(diǎn)的相關(guān)內(nèi)容,涉及三種設(shè)計(jì)思路及代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10
Spring 靜態(tài)變量/構(gòu)造函數(shù)注入失敗的解決方案
我們經(jīng)常會(huì)遇到一下問(wèn)題:Spring對(duì)靜態(tài)變量的注入為空、在構(gòu)造函數(shù)中使用Spring容器中的Bean對(duì)象,得到的結(jié)果為空。不要擔(dān)心,本文將為大家介紹如何解決這些問(wèn)題,跟隨小編來(lái)看看吧2021-11-11

