- 博客(9)
- 收藏
- 关注
原创 nio线程模型
一、基于BIO下的线程处理模式这种处理模型是基于阻塞IO进行的,,阻塞IO会阻塞每一个IO操作,直到事件就绪,下面来看下阻塞IO下的服务端线程模型:https://img2018.cnblogs.com/blog/1569484/201903/1569484-20190325152937620-1008938753.png如上图所示,该线程模型基于阻塞IO模型实现,针对每个请求都需要抽出来一个线程进行处理读入数据、业务处理数据、返回响应结果给客户端,这个过程中读、写操作均会阻塞,且跟业务处理串行执行,
2021-10-28 16:21:28
424
原创 dubbo 服务导出
NettyServer启动(注意这里要区分NettyClient) handler包装过程默认AllDipacher AllChannelHandler FixThreadPoolprotected ChannelHandler wrapInternal(ChannelHandler handler, URL url) { return new MultiMessageHandler( ...
2019-07-09 21:55:29
277
原创 dubbo服务调用源码解读
1.proxy代理类:helloService.sayHello2.InvokerInvocationHandlerpublic Object invoke(Object proxy, Method method, Object[] args)3.MockClusterInvokerpublic Result invoke(Invocation invocation)4.Abstract...
2019-07-01 19:35:14
241
原创 类结构
类文件结构1.魔数2.大小版本号3.常量池大小4.常量池5.访问标志常量池之后,是2个字节来表示访问标志,用于识别一些类或者接口层次的访问信息。标志名称 标志值 含义ACC_PUBLIC0x0001是否为public类型ACC_FINAL0x0010是否被声明为final,只有类可以设置ACC_SUPER0x0020JDK1.0.2以后这个标志都为真ACC_INT...
2019-06-20 17:05:54
926
转载 类加载
主流程类的生命周期共有7个阶段:加载->验证->准备->解析->初始化->使用->卸载,其中验证、准备、解析这3个阶段合起来又称为连接阶段加载通过类的全限定名来获取定义此类的二进制字节流;将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构;在Java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口;...
2019-06-20 17:04:47
92
原创 IO底层
IO端口每个连接到I/O总线上的设备都有自己的I/O地址集,即所谓的I/O端口(I/O port)。IO步骤:1.选择端口 2.传输数据有四条专用的汇编语言指令可以允许CPU对I/O端口进行读写:它们分别是in、ins、out和outs。在执行其中的一条指令时,CPU使用地址总线选择所请求的I/O端口,使用数据总线在CPU寄存器和端口之间传送数据。读数据MOV AL,N ...
2019-06-20 11:43:30
195
原创 TCP入门
报文头部格式源端口 2字节 最大2^16-1目的端口 2字节TCP交互端口的意义:指明交互双方的身份是属于IP内的哪个进程校验和伪首部 先加个伪首部 伪首部共有12字节,包含如下信息:源IP地址、目的IP地址、保留字节(置0)、传输层协议号(TCP是6)、TCP报文长度(报头+数据)。伪首部是为了增加TCP校验和的检错能力:如检查TCP报文是否收错了(目的IP地址)、传输层协议是否选...
2019-06-12 17:33:37
282
原创 保护模式
保护模式实时模式实时模式下,我们对一个内存地址的访问是通过Segment:Offset的方式来进行的,其中Segment是一个段的Base Address,一个Segment的最大长度是64 KB,这是16-bit系统所能表示的最大长度。而Offset则是相对于此Segment Base Address的偏移量。Base Address+Offset就是一个内存绝对地址。由此,我们可以看出,一...
2019-06-11 17:11:00
360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人