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)文章
Java使用iTextPDF生成PDF文件的實(shí)現(xiàn)方法
這篇文章主要介紹了Java使用iTextPDF生成PDF文件的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Java最簡(jiǎn)單的DES加密算法實(shí)現(xiàn)案例
下面小編就為大家?guī)?lái)一篇Java最簡(jiǎn)單的DES加密算法實(shí)現(xiàn)案例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06java判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例
下面小編就為大家?guī)?lái)一篇java判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01idea向System.getenv()添加系統(tǒng)環(huán)境變量的操作
這篇文章主要介紹了idea向System.getenv()添加系統(tǒng)環(huán)境變量的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Java多線程中wait?notify等待喚醒機(jī)制詳解
這篇文章主要介紹了Java多線程中wait?notify等待喚醒機(jī)制,由于線程之間是搶占式執(zhí)行的,因此線程的執(zhí)行順序難以預(yù)知,但是實(shí)際開(kāi)發(fā)中有時(shí)候我們希望合理的協(xié)調(diào)多個(gè)線程之間的執(zhí)行先后順序,所以這里我們來(lái)介紹下等待喚醒機(jī)制,需要的朋友可以參考下2024-10-10Springboot+rabbitmq實(shí)現(xiàn)延時(shí)隊(duì)列的兩種方式
這篇文章主要介紹了Springboot+rabbitmq實(shí)現(xiàn)延時(shí)隊(duì)列的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05