最近在学习java nio 方面的知识,这个点一直有点奇怪,nio编程里有这样一段通用代码
for(xxxxxxx){
if(selectionKey.isAcceptable()){
ServerSocketChannel ssc = (ServerSocketChannel) selectionKey.channel();
SocketChannel socketChannel = ssc.accept();
socketChannel.configureBlocking(false);
socketChannel.register(selector,SelectionKey.OP_READ);
}
f(selectionKey.isReadable()){
.......
}
}
循环扫描通道的状态,在通道accept的时候将会将会生成一个新的通道socketChannel,然后指定监听的事件,这样一个tcp连接都将形成一个channel,问一下这样理解对吗
你只从代码层面理解是不可行的,你要把代码和操作系统提供的网络模型结合起来去理解。