java之NIO三言两语

来源:互联网 发布:如何高级筛选汇总数据 编辑:程序博客网 时间:2024/05/03 13:27

1,主要有channel和buffer,以及select。
channel有file和socket,通过它建立连接传输数据;
buffer就是一个内存区域,存放channel的读写数据。
select可以查询那个channel就绪了。可以一个线程select处理多个channel

2,相对于之前的IO来说,变成非阻塞了。以前read或者write都是等待,现在直接往buffer里读取,不需要等待了。buffer分readbuffer和writebuffer两种,有三个属性:cap容量、pos位置、limit位置。什么时候读,什么时候写,可以通过flip函数切换。

3,select相当于一个水龙头,很多个buffer桶在那接水,调用select查询下就知道哪个桶就绪,就用哪个。这个比例倒是挺形象的,画面感也十足。

过段时间得空后,好好看看linux上实现的epoll网络通讯。

0 0