高效率的nio框架 nio java raptor

码农软件 · 软件分类 · 高性能网络开发库 · 2019-09-01 21:28:56

软件介绍

设计初衷是提供方便易用,且高效率的nio框架,一部分实现上参考了mina。还包括线程池,编解码,内存池等机制,以便于开发高性能tcp程序。 文档后续会慢慢的补上。 整体实现上尽量少的使用锁,避免cpu浪费。 整体框架提供了服务线程池,对于一个连接来讲,这个连接的事件将会在线程池中执行,不过这个过程保证是顺序执行的,例如对于一个连接,在差不多同时的时间 接收到了两个包,那么,我们可以认为,在第一次接受事件未执行完,第二个事件不会被执行,即这两个事件不是分别被发送到两条线程中执行,可以认为是被串行 化到同一条线程中(注意:此处一条线程,并不是真的在同一条线程中执行,这两个事件可能在不同线程中,只不过框架严格保证执行的先后顺序了,所以对于 ThreadLocal变量的使用,是不安全的)。由于线程池的添加,我们在开过程中,无需再考虑业务层消耗,直接按事件触发式就可以了,也不用再将数据 包投递到另外的线程中。使用方式参见TestProtocolClient,TestProtocolServer

框架还提供了完全不使用线程池的方式,请参见TestClient,TestServer

当然,如果你需要部分事件置入到线程池,也是可以的,后续,我会补一下这反面的例子代码

循环内存池的机制,实际上是为了提供一种避免gc的一种方式,当然如果你的程序不需要内存池也可以取消掉,内存池采用的是块分配,例如块大小1024,如果需要4096的话,内存池会返回4个块,具体使用可以参考TextLineProtocol类.

TextLineProtocol提供了按行的协议解析,字符采用的unicode编码,在类似这种情况下,内存池的作用就体现出来了,不用每次new新的byte数组了。

本文地址:https://www.codercto.com/soft/d/13674.html

Bad Blood

Bad Blood

John Carreyrou / Knopf / 2018-5-21 / USD 27.95

The full inside story of the breathtaking rise and shocking collapse of Theranos, the multibillion-dollar biotech startup, by the prize-winning journalist who first broke the story and pursued it to t......一起来看看 《Bad Blood》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具