NIO理解

基本概念理解

channel 轨道 buffer火车 selector 调度中心

1.buffer与channel之间相互读写

2.NIO本质: 不管是读还是写针对buffer操作,客户端与buffer交互,通过buffer实现非阻塞

3.之前BIO read客户端是否阻塞的,现在从buffer中读取是非阻塞的,用一个线程可以读取多个通道,哪个通道有数据过来(事件),能感知,即服务端多线程中每个线程处理多个通道,哪个通道有数据,处理哪个。

4.不是轮询,是Reactor模式,事件通知Selector去执行哪个channel

5.selector 相当于BIO socket,观察者模式,感知通道中是否有数据发来

6.一个服务端线程管理多个selector

基本介绍

 关系图

 Buffer

 

 Buffer code

@Slf4j
public class BufferService {

    public static void main(String[] args) {

	IntBuffer intBuffer = IntBuffer.allocate(10);
	for (int i = 0; i < intBuffer.capacity(); i++) {
	    intBuffer.put(i);
	}
	intBuffer.flip();

	while (intBuffer.hasRemaining()) {
	    log.info("read intBuffer: {}", intBuffer.get());
	}
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值