- 博客(10)
- 资源 (9)
- 收藏
- 关注
原创 ThreadPoolExecutor源码解析
创建线程池最终都会调用下面这个方法 对上面参数做一下简单讲解 corePoolSize 线程池中核心线程数 maximumPoolSize 线程池中最大线程数 keepAliveTime 线程池中空闲线程存活时间 TimeUnit keepAliveTime的单位 workQueue 阻塞队列BlockingQueue 实例 threadFactory 线程工厂, 用于
2018-02-01 15:34:49 273
原创 ReentrantLock源码分析
ReentrantLock是Java并发包中提供的一个可重入的互斥锁。ReentrantLock和synchronized在基本用法,行为语义上都是类似的,同样都具有可重入性。只不过相比原生的Synchronized,ReentrantLock增加了一些高级的扩展功能,比如它可以实现公平锁,同时也可以绑定多个Conditon。 AbstractQueuedSynchronizer Reen
2018-01-30 11:05:08 260
原创 ConcurrentHashMap源码分析
HashMap :先说HashMap,HashMap是线程不安全的,在并发环境下,可能会形成环状链表(扩容时可能造成,具体原因自行百度google或查看源码分析),导致get操作时,cpu空转,所以,在并发环境中使用HashMap是非常危险的。 HashTable : HashTable和HashMap的实现原理几乎一样,差别无非是1.HashTable不允许key和value为null
2018-01-26 13:46:12 211
原创 HashMap源码解析
HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中。 HashMap
2018-01-21 18:33:18 219
原创 Synchronized原理解析
Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法,属于重量级锁。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法: (1)修饰普通方法 (2)修饰静态方法 (3)修饰代码块
2018-01-08 21:43:43 347
原创 Spring Cloud Config 客户端的高可用实现
Spring cloud config 在使用spring cloud 构建分布式系统的过程中,为了完成多个服务的配置统一管理,使用了spring cloud config作为配置中心,管理所有微服务的系统配置。在分布式系统中,配置中心是一个独立的服务部件,作用是专门为其他服务提供系统启动所需的配置信息,保证系统正确启动。使用中带来一个问题,即配置中心的高可用。 配置中心的高可用问题配置中心(sp
2018-01-08 20:56:34 529
原创 SpringBoot+Dubbo+zookeeper整合
废话不多说 开整 新建dubbo-parent 父工程 加入以下jar包 parent> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-parentartifactId> version>1.5.2.RELEASEversion> parent> properties
2018-01-06 17:56:59 8273 1
原创 LinkedList源码解析
LinkedList内部就是由链表的形式实现。它并没有用数组来存储数据元素,而是由一个个Node类型结点来储存数据, 然后每个Node结点通过指向前后结点的next和prev指针将整个List串联起来 看一下成员变量 transient int size = 0; 长度transient NodeE> first; 链表第一个节点的引用transient NodeE> la
2018-01-06 14:41:54 189
原创 Java源码之ArrayList
总体介绍 Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。Set和List两个类继承于它。Set中不能包含重复的元素,也没有顺序来存放。而List是一个有序的集合,可以包含重复的元素。 而Map又是另一个接口,它和Collection接口没有关系。Map包含了key-value键值对,同一个Map里key是不能重复的,而不同key
2017-12-05 21:44:04 219
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人