摘要: 在Netty中,能够同时支持单线程,多线程和主从Reactor三种模式: 下图为Netty的线程模型: 以常用的Netty代码举例分析: // 配置服务端的NIO线程组 EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGrou 阅读全文
posted @ 2019-11-26 16:14 欧E 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 简析JDK中的Future机制: JDK中的通过实现Callable接口的类,传递进线程池后,会被重新包装成一个FutureTask类,该类实现RunnableFuture<V>,但是RunnableFuture<V>又继承Runnable接口,所以本质上FutureTask就是一个线程类,可被执行 阅读全文
posted @ 2019-11-26 16:14 欧E 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 具体实现原理和模型图,请参考:Reactor模型介绍 单Reactor单线程实现,请参考:基于NIO-Reactor的介绍和单Reactor单线程模型的实现 在单Reactor单线程模型中,还有可优化的地方,那就是dispatch每分发一个事件,无论是ReadHandler和WriteHander中 阅读全文
posted @ 2019-11-26 16:13 欧E 阅读(533) 评论(0) 推荐(1) 编辑
摘要: 具体实现原理和模型图,请参考:Reactor模型介绍 单Reactor单线程模型的实现: /** * 单Reactor单线程模型 */ public class OneReactorSingleThreadMode { public static void main(String[] args) { 阅读全文
posted @ 2019-11-26 16:13 欧E 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 具体实现原理和模型图,请参考:Reactor模型介绍 单Reactor单线程实现,请参考:基于NIO-Reactor的介绍和单Reactor单线程模型的实现 单Reactor多线程模型实现,请参考:基于NIO-单Reactor多线程模型的实现 在单Reactor多线程模型,只有一个selector, 阅读全文
posted @ 2019-11-26 16:13 欧E 阅读(1769) 评论(0) 推荐(0) 编辑
摘要: Reactor是一种设计模式。基于事件驱动,然后通过事件分发器,将事件分发给对应的处理器进行处理。 该设计模式可以分三个角色: Acceptor:负责接收Accep事件,然后将连接注册成读事件,传递给dispatch; Dispatch:负责分发事件,如果是接收到Accept事件,则分发给Accep 阅读全文
posted @ 2019-11-26 16:13 欧E 阅读(3330) 评论(0) 推荐(0) 编辑
摘要: Netty中ByteBuf的诞生,是因为jdk中的ByteBuffer类操作麻烦,并且存在局限性。 jdk NIO的ByteBuffer存在一下几点问题: (1) ByteBuffer只维护一个标识位置的指针position,读和写都要手工维护指针位置,操作麻烦。 (2) ByteBuffer长度固 阅读全文
posted @ 2019-11-26 16:12 欧E 阅读(485) 评论(0) 推荐(0) 编辑
摘要: TCP与Socket TCP:是一种面向连接的,可靠的,基于字节流的的传输层通信协议。 Socket:也称为“套接字”,它是应用程序通过网络发送请求和接受应答的接口。 OSI七层模型和TCP/IP四层模型 OSI七层模型 TCP/IP四层模型 对应的网络协议或应用 应用层 应用层 HTTP,TFTP 阅读全文
posted @ 2019-11-26 16:11 欧E 阅读(153) 评论(0) 推荐(0) 编辑