![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RPC
文章平均质量分 88
孤落
大漠孤烟直,长河落日圆。
展开
-
Java IO
Java IOgithub:Java IO: https://github.com/guluo2016/studyNote/blob/RPC/RPC/java%20IO.md程序运行过程中不可避免的需要同磁盘打交道,有的时候资源可能还不在本地,这个时候还可能借助于网络,不管是和本地磁盘还是通过网络与远程磁盘交互,有必须用到IO,因此Java IO还是非常重要的。 另外,基于Java ...原创 2018-09-05 19:43:02 · 156 阅读 · 0 评论 -
Java NIO
Java NIOgithub:Java NIO: https://github.com/guluo2016/studyNote/blob/RPC/RPC/java%20NIO.md昨天学习的Java IO是传统的IO,使得程序与存放在磁盘上的文件能够很方便的进行交互。但是它也存在一定的问题,问题的根源在于速度,由于磁盘IO速度远远小于CPU处理速度,这导致程序在进行IO操作的时候,不得不...原创 2018-09-05 19:44:52 · 454 阅读 · 0 评论 -
netty 入门
netty 入门guthub: netty 入门使用Java NIO就可以进行高性能网络编程,但是利用jdk原生的NIO API的话,在编程的时候必须很小心,需要自己来规避一些可能的异常情况,如:epoll bug问题就是其中之一,理论上想Selector注册的所有Channel都没有IO操作的话,Selector.select()将会被阻塞,直至有Channel有IO操作,但是...原创 2018-09-05 19:47:23 · 655 阅读 · 1 评论 -
netty(二) NioEventLoop学习
EventLoop学习昨天我开始学习netty框架,写了一个小例子,今天学习下其中比较重要的技术之一:EventLoop。netty是基于Java NIO的框架,昨天学习的时候(包括前天学习Java NIO的时候)一直在想,当服务器线程没有客户端连接请求或者通道中没有IO操作的时候,就会陷入阻塞,一旦有感兴趣的动作发生的时候,线程就会被重新唤醒,继续执行,那么阻塞的线程为什么能够在事件发生...原创 2018-09-06 23:33:33 · 293 阅读 · 0 评论 -
netty(五) ChannelPipeLine和ChannelHandler学习
ChannelPipeline和ChannelHandler学习根据java NIO思想,不管是从文件中读写数据还是从网络中读写数据,都是借助于一个Channel来进行的。 即:File <–> Channel <–> 程序 在netty框架中,netty将Channel的数据管道(Channel中包含很多信息)抽象成一个ChannelPipeline,用于描述数据...原创 2018-09-12 22:46:46 · 557 阅读 · 0 评论 -
netty(三) NioEventLoop再学习
NioEventLoop再次学习昨天开始学习了NioEventLoop,今天详细看了NioEventLoop的底层实现。NioEventLoop的继承关系如图所示: 从图中可以看出来,NioEventLoop的终极父类是Executor,也就是是说NioEventLoop是一个线程池(但是它也可以看做一个线程)。在程序中并没有使用NioEventLoop,而是通过使用NioEvent...原创 2018-09-07 22:36:14 · 269 阅读 · 0 评论 -
netty(四)ServerBootstrap学习
ServerBootstrap学习github:ServerBootstrap学习ServerBootstrap是一个启动辅助类,和普通Java网络编程一样,它的服务端和客户端所有的启动类是有一点差别的。Java网络编程中服务端用的是ServerSocket,而客户端使用的是Socket。和这个进行类比,netty框架的服务端和客户端使用的启动类辅助分别是:ServerBootstra...原创 2018-09-08 16:57:39 · 357 阅读 · 0 评论 -
netty(六) ByteBuf学习.md
ByteBuf学习基于Java Nio的网络通信,必须依赖于ByteBuffer,从程序实际上是借助于ByteBuffer来与Channel进行交互的,可以向Channel读写数据,但是Java Nio原生的ByteBuffer存在一些问题。ByteBuffer有两种模式:读模式和写模式,写模式切换到读模式的时候,必须显示地调用flip()方法,否则从缓冲区中读数据会出现异常。这就要求程序猿必...原创 2018-09-17 22:23:17 · 1957 阅读 · 0 评论 -
Java 动态代理
Java 动态代理1 普通代理代理模式是经典的设计模式,主要是:在客户不能够直接访问到目标对象的时候,设计一个代理对象(该代理对象可以直接访问真实对象),客户借助于代理对象去访问真实对象;或者是在调用目标方法的时候,想添加一些额外的操作,但是有不想改变原有的业务逻辑。代理模式实际上屏蔽了内部访问的细节,客户不管你内不是如何运行的,只要返回给我最终的结果即可。代理模式应用还是非常广泛的,Spri...原创 2018-09-24 13:47:17 · 124 阅读 · 0 评论