当前位置:懂科普 >

IT科技

> java selector

java selector

<link rel="stylesheet" href="https://js.how234.com/3f0e869d6d/260484806ecf5e3f60c68fd45fc34391a2/260993986ac4/2615a99b7dd2.css" type="text/css" /><link rel="stylesheet" href="https://js.how234.com/3f0e869d6d/260484806ecf5e3f60c68fd45fc34391a2/260993986ac4/2615be9c6ada531262c882c854df.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(); } } } } }

标签: java selector
  • 文章版权属于文章作者所有,转载请注明 https://dongkepu.com/itkeji/z3z4lo.html