QRWells / oceanet

基于eventloop的java非阻塞网络库,实现了事件驱动,无锁的基于最小堆的定时器,便于扩展的pipeline机制以及内存池

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

oceanet

基于netty源码启发的学习性质的java非阻塞网络库

  • 基于Eventloop模型做到了读写串行化,尽可能减少了锁的开销,实现了消息驱动的socket读写和基于最小堆的定时器
  • 实现了三级内存池,降低每次都需要获取堆外内存的开销,Eventloop线程优先从本线程私有的分配器分配池化内存,若不足再去全局公有的分配器分配内存,再不足则分配非池化内存,同样允许设置最大和最小内存池上限保证大小可控
  • 仿照netty的pipeline实现了无锁化的线程安全可插拔handler
  • 只依赖与jdk系统库标准API,不依赖于反射,无额外第三方依赖,对jdk升级和native-image友好

About

基于eventloop的java非阻塞网络库,实现了事件驱动,无锁的基于最小堆的定时器,便于扩展的pipeline机制以及内存池


Languages

Language:Java 100.0%