- 博客(8)
- 收藏
- 关注
原创 Netty源码解析-ServerBootstrap及初始化服务端启动
在https://blog.youkuaiyun.com/ybin__/article/details/81007018 中分析了NioEventGroupLoop的初始化,这一章主要ServerBootstrap的初始化,及Netty服务端的启动。 ServerBootstrap的UML图: ServerBootstrap继承至AbstractBootstrap,ServerBootSt...
2018-09-22 11:53:11
919
原创 Netty源码解析-NioEventLoop初始化
作为Netty的核心组件之一,NioEventLoop负责处理netty中的各种事件,每个NioEventLoop上有一个selector负责轮询IO事件,有一个定时任务队列及普通任务队列负责处理注册到NioEventLoop上的非IO任务。而1组NioEventLoop右由一个NioEventLoopGroup负责管理,默认一个NioEventLoopGroup管理2倍CPU核数的Nio...
2018-07-11 22:44:39
299
原创 AVL树旋转及代码实现
AVL树是带有平衡条件的二叉查找树,它允许每个节点的左子树与右子树的高度差未1。这样的平衡树深度是O(log N)。而要维持这种平衡,就必须在每次对AVL树删除节点或新增节点后,检查AVL树的平衡是否被打破,即是否存在节点的左右子树高度差大于1,在判断AVL树失去平衡后,就必须旋转失去平衡的节点,已再次达到平衡。AVL树旋转: 旋转的目的就是减小树的高度,节点未空时,节点的高度未-1...
2018-06-13 22:50:19
869
原创 JAVA运行时数据区域
JVM运行时数据区图示:根据《Java虚拟机规范(JavaSE 7)》的规范,JVM所管理的内存包含如下几个运行时数据区域:各区域介绍:堆结构: 堆被划分为新生代和老年代。新生代又被细分为eden和from survivor和to survivor,参数-XX:SurvivorRatio是新生代各分区的划分比值,默认为8.代表:eden:survivor=8:1。 大多数情况下,对象都是在...
2018-05-15 23:37:35
311
原创 ReentrantLock源码分析及实现原理
ReentrantLock可重入的互斥锁,它具有与使用synchronized方法和语句所访问的隐式监视器锁相同的一些基本行为和语义。但功能更强大,更灵活,可减少死锁发生的概率。ReentrantLock由最近成功获取锁且未释放锁的线程拥有。 ReentrantLock提供了公平锁与非公平锁的选择,当构造方法接收一个可选的公平参数且该值为true时,ReentrantLock表示的实...
2018-03-31 23:53:23
335
原创 java的CAS
cas是compare and swap的缩写,是由操作系统提供的并发操作的原子指令;cas操作包含3个基本值,内存地址,预期值,要更新的值。在更新变量值时,cas会首先将变量内存地址上的原值和预期值相比较,如果相当就将其设置为要更新的值。cas就是乐观锁的一种形式。 Volatile能保证共享变量的可见性,即线程将共享变量从主内存读取到线程自己的工作内存中修改后,立即同步到主内存中...
2018-03-22 23:28:38
227
原创 storm学习之接口实现及代码发布集群
2.storm学习之接口实现及代码发布集群已单词计数为列,代码列子参见《Storm分布式实时计算模式》一书;代码github地址:https://github.com/yuexianbing/storm_test;基础概念:Storm的核心结构是tuple,无限制的tuple组成的序列即为Stream;spout是storm topology的主要数据入口;bolt接收spout的数据,对数据计算...
2018-03-06 23:00:29
1374
原创 storm学习之集群搭建
1.Storm的集群搭建及配置搭建Storm集群所需要的组件:Storm1.1.1 wget http://mirror.bit.edu.cn/apache/storm/apache-storm-1.1.1/apache-storm-1.1.1.tar.gz;JDK1.7+;zookeepr wget http://mirror.bit.edu.cn/apache/zookeeper/
2018-02-04 19:48:08
270
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人