xnio java_XNIO源码阅读

XNIO 是JBoss的一个IO框架。最开始我想找个lightweight servlet container库,于是看到了 undertow ,发现其网络部分使用的就是XNIO。所以干脆就先把XNIO的源码读下。

XNIO文档非常匮乏,能找到都是 3.0的版本 ,而且描述也不完全。Git上已经出到3.5.0。我读的是3.3.6.Final。

使用方式

可以参考 SimpleEchoServer.java ,不过这个例子使用的API已经被deprecated,仅供参考。使用方式大致为:

创建服务,提供acceptListener

在acceptListener中accept新的连接,并注册连接listener

在连接listener回调中完成IO读写

主要概念

Channel,基本上同Java NIO中的Channel一致,一个server socket是一个channel,accept出来的连接也是channel

ChannelListener,监听Channel上的IO事件,应用代码与XNIO交互的地方

XnioWorker,维护IO线程池及应用任务线程池

项目结构

源码分为两个项目: xnio-api及nio-impl。xnio-api属于API层;nio-impl是基于NIO的实现。通过Java service provider动态地找到nio-impl这个实现。可见XNIO还可以用其他方式来实现。

org.xnio.channels 这个包里包含了大量的Channel接口定义,这个是非常恶心的一个地方,读代码的时候很容易被绕进去。这个包主要的实现后面提。 org.xnio.conduits ,我理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值