网络编程NIO-异步
异步I/O是没有阻塞地读写数据的方法。通常在代码进行read调用时,代码会阻塞 直至可供读取的数据。同样,write调用将会阻塞直至数据能够写入。 1、selector是一个对象,可以注册到很多个channel上,监听各个channel上发生 的事件,并且能够根据事件情况决定channel读写,这样通过一个线程管理多个channel 创建selector: Selector selector = Selector.open(); 注册channel到selector: channel.configureBlocking(false); SelectionKey key = chanenl.register(selector, SelecltionKey.OP_READ_; 注意,注册channel必须设置为异步模式才可以。register调用的返回值是 selectionKey。这个对象待办这个通道在此selector上的这个注册。当某个selector 通知你某个传入事件时,它是通过提高对应于该事件的SelectionKey来进行的。selectionKey 还可以用于取消通过的注册 2、channel和selector Channel channel = selectionKey.channel(); Selector selector = selectioKey