![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java源码剖析
Zephyr_7
码农
展开
-
Reentrantlock源码剖析--菜鸟一枚,鼓励指正
Reentrantlock源码剖析(未完待续)Reentrantlock类中大约共有21个方法,三个内部类(Syn,FairSyn,NonfairSync),实现了接口Serializable,主要的加锁解锁功能,是通过三个内部类完成的。在所有的方法中涉及到加锁的方法有三个,lock(),tryLock(),tryLock(long,TimeUnit ),涉及到解锁的一个unlock().与Cond原创 2016-04-28 17:26:22 · 502 阅读 · 0 评论 -
LeetCode循环旋转链表
Given a list, rotate the list to the right by k places, where k is non-negative.For example:Given 1->2->3->4->5->NULL and k = 2,return 4->5->1->2->3->NULL.题目大概是这个样子,但是奈何自己英语没过六级看不懂啊。从例子上答题的看懂什么意思了,开始原创 2016-05-22 15:37:49 · 525 阅读 · 0 评论 -
ConcurrentHashMap中并发级别,桶内hash表的长度,扩容门槛的确定
ConcurrentHashMap中sigment数量,sigment中hash表的长度,以及加载因子的确定。 分析一下下面的构造函数参数 initialCapacity 是我们指定的map的初始容量大小,但是map初始完成后的容量并不一定等于该值。 loadFactor 用来控制每个桶内的扩容的门槛threshold 桶内元素大于该值,要扩容在hashrehash() concurren原创 2016-08-17 16:13:11 · 2596 阅读 · 0 评论 -
JDK1.7中的ThreadPoolExecutor源码剖析
JDK1. 7中的ThreadPoolExecutor线程池,顾名思义一个线程的池子,池子里存放了很多可以复用的线程,如果不用线程池类似的容器,每当我们需要创建新的线程时都需要去new Thread(),用完之后就被回收了,线程的启动回收都需要用户态到内核态的交互,频繁的创建开销比较大。而且随着线程数的增加,会引起CPU频繁的上下文切换严重影响性能。这时候线程池类似的容器就发挥出了作用。线程池里面的原创 2016-08-10 15:03:38 · 4486 阅读 · 4 评论