關閉→
當前位置:知科普>IT科技>selector - java

selector - java

知科普 人氣:1.14W

<link rel="stylesheet" href="https://js.how234.com/cd1ed15f09/d414d3420abbc941c41285aba9a11be10d/d419c45a0eb0/d405fe5919a6.css" type="text/css" /><link rel="stylesheet" href="https://js.how234.com/cd1ed15f09/d414d3420abbc941c41285aba9a11be10d/d419c45a0eb0/d405e95e0eaec46cc61c88b7a2bd.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><style>pre{overflow-x: auto}</style>

   <link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java selector是什麼?讓我們一起來了解一下吧!

java selector是一個抽象類。Selector的含義是選擇器,它支持NIO的多路複用。selector要應用selector.open()方法來取得,不可以直接創造。

java selector

Selector有以下幾種選擇鍵維護:

1.keys:保存了所有已經在冊且沒有取消的選擇鍵,它屬於Set類型。可以使用selector.keys()獲取

3.canceledKeys:已取消鍵.已經被取消但還沒有取消註冊(deregister)的選擇鍵。該合計不能被訪問。

3.canceledKeys:已取消鍵.已經被取消但還沒有取消註冊(deregister)的選擇鍵。該合計不能被訪問。

實戰演練,具體步驟如下:

package com.test.nio; import java.io.DataInputStream; import java.io.InputStream; import java.net.InetSocketAddress; import java.net.Socket; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.ServerSocketChannel; import java.nio.channels.spi.SelectorProvider; import java.util.Iterator; import java.util.Set; public class TestSelector {undefined /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception {undefined // TODO Auto-generated method stub Selector selector=SelectorProvider.provider().openSelector(); ServerSocketChannel ssc= ServerSocketChannel.open(); ssc.configureBlocking(false); ssc.socket().bind(new InetSocketAddress("127.0.0.1",7979)); SelectionKey acceptKey=ssc.register(selector,SelectionKey.OP_ACCEPT); //System.out.println("通道就緒個數:"+selector.select()); int keysAdded=0; while((keysAdded=selector.select())>0) {undefined Set readyKeys=selector.selectedKeys(); Iterator i=readyKeys.iterator(); while(i.hasNext()) {undefined SelectionKey sk=(SelectionKey) i.next(); i.remove(); ServerSocketChannel nextReady= (ServerSocketChannel) sk.channel(); Socket s=nextReady.accept().socket(); InputStream din=s.getInputStream(); DataInputStream ds=new DataInputStream(din); String str=ds.readLine(); while(str!=null) {undefined System.out.println(str); str=ds.readLine(); } } } } }

TAG標籤:#selector #java #