自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(11)
  • 收藏
  • 关注

原创 字节码与常量池和JVM内存原理

深入理解JVM和常量池原理JVM模型模型图模型图解析常量池常量池表常量池表举例如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入JVM模型模型图模型图解析1.JVM主要包括了图中的三块,分别是方法区,堆,以及线程独有的区域。2.其中方法区中包括了类变量,类信息,方法信息以及常量池。常量池1.常

2020-06-03 21:46:01 231

原创 乐高铺砖——分治算法实现

分析用如上图所示的乐高砖铺一个边长为 2n2^n2n的正方形地面。其中有一块是已经铺好的。先证明(2n)2−1(2^n)^2-1(2n)2−1能够被333整除。(1).当n=1n=1n=1时,显然3/3=13/3=13/3=1,能够整除(2).假设当n=kn=kn=k时,4k−1=3∗A4^k-1=3*A4k−1=3∗A成立(3).则当n=k+1n = k+1n=k+1时,4k+1−1=...

2019-06-20 15:20:56 1454

原创 Netty与Reactor线程模型

Netty是一个高性能,异步的事件驱动的Java NIO框架,它的所有I/O操作都是异步非阻塞的,在看Netty中Reactor模型之前,先看下Java NIO中的

2019-05-13 21:41:23 153

原创 第二章 线程安全性

概述1.在构建稳健的并发程序时,必须正确地使用线程和锁。2.要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享的和可变的状态的访问。3.”共享“指变量可以由多个线程同时访问,”可变“意味着变量的值在其生命周期内可以发生变化。2.1什么是线程安全性1.当多个线程访问某个类时,不管运行时环境采用何种调度方式,或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步...

2019-04-29 14:41:39 126

原创 Netty异步读写操作的架构与观察者模式的应用

1.Netty中的FutureNetty中的Future继承了java.util.concurrent.Future,java的Future主要是运行或者取消任务,而Netty中增加了更多的功能。public interface Future<V> extends java.util.concurrent.Future<V> { boolean isSu...

2019-04-16 13:43:19 1108 1

原创 第六章 任务执行

6.1在线程中执行任务1.当围绕“任务执行”来设计应用程序时,第一步就是要找出清晰的任务边界。大多数服务器应用程序都提供了以独立的客户请求为边界这种方式。2.在正常的负载下,服务器应该表现出良好的吞吐量和快速相应。在负荷过载时,性能应该是逐渐降低,而不是直接失败。6.1.1串行地执行任务class SingleThreadWebServer{ public static void mai...

2019-04-03 11:21:52 394

原创 Netty底层系统架构

1.执行Channel的任何一个操作,都会验证是否是对应的EventLoop中所包含的那个线程在执行。如果不是,则以提交任务的的形式让其执行所有所有属于Channel的同一个操作。任务的提交顺序与任务的执行顺序是完全一致的。2.在Netty中,Channel的实现是线程安全的,基于此,我们可以存储一个Channel的引用,并且在需要向远程端点发送数据时,通过这个引用来调用Channel相应的方法...

2019-03-27 20:13:11 223

原创 Attribute AttributeKey与AttributeMap

1.attribute允许存储一个值引用。它可以原子更新,因此它是线程安全的。2.attribute是一个属性对象,这个属性的key为AttributeKey,属性的值T为value。3.AttributeKey继承自AbstractConstant,因此也由ConstantPool创建。4.Channel类本身继承了AttributeMap,而AttributeMap它持有多个Attrib...

2019-03-27 12:02:20 2536

原创 Channel和ChannelPipeline以及ChannelHandlerContext

Channel1.Channel是一组socket或者能够执行i/o操作(读写,连接和绑定)的组件的连接。channel可以提供:channel目前的状态,比如打开,或者已连接状态。channel的配置参数。channel支持的i/o操作提供channelpipeline,可以处理所有的i/o事件或者请求。2.所有的i/o操作都是异步的。这意味着任何的i/o调用都会立即返回,并且...

2019-03-26 11:16:10 900 1

原创 Channel的注册流程分析

在AbstractBootStrap类的initAndRegister()方法中,先进行对Channel的初始化,在初始化过程结束之后,会执行Channel的注册流程逻辑。如下图:上图所示源码中,ChannelFuture regFuture = config().group().register(channel);执行Channel注册到EventLoop 上的流程。1. config()...

2019-03-25 12:41:33 2016

原创 ChannelInitializer组件分析

1.一个特殊的ChannelInboundHandler,它提供了一种Channel注册到EventLoop后初始化Channel的简便方法。实现最常用于Bootstrap.handler(ChannelHandler),ServerBootStrap.handler(ChannelHandler)和ServerBootStrap.childHandler(ChannelHandler). ...

2019-03-24 14:27:07 617

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除