Java NIO的几点感触:
1: Selector.
selector.select():该方式为阻塞,直到发现至少有一个可选的SelectionKey才返回。
selector.select(long timout):若有可选的SelectionKey则立即返回,否则到达指定的超时时间就返回,而不管有没有可选的SelectionKey。
selector.selectNow():立即返回而不管有没有可选的SelectionKey。
2: socketChannel.read(readBuf).
socketChannel的read方法最好放在循环中,因为socket通道不一定一次就能读完,最好一直读直到读完,比如如下方式:
int count = 0;
while((count=channel.read(readBuf))>0) {
//处理每次读到的数据
}
if(count<0) {
channel.close();//关闭通道
}
Java NIO有感
最新推荐文章于 2022-06-16 15:49:01 发布