加载中
谈谈Java引用和Threadlocal的那些事

1 背景 某一天在某一个群里面的某个群友突然提出了一个问题:"threadlocal的key是弱引用,那么在threadlocal.get()的时候,发生GC之后,key是否是null?"屏幕前的你可以好好的想想这个问题,在...

2019/07/29 16:57
121
死磕 java集合之DelayQueue源码分析

问题 (1)DelayQueue是阻塞队列吗? (2)DelayQueue的实现方式? (3)DelayQueue主要用于什么场景? 简介 DelayQueue是java并发包下的延时阻塞队列,常用于实现定时任务。 继承体系 从继承...

2019/07/29 16:19
86
死磕 java魔法类之Unsafe解析

问题 (1)Unsafe是什么? (2)Unsafe只有CAS的功能吗? (3)Unsafe为什么是不安全的? (4)怎么使用Unsafe? 简介 本章是java并发包专题的第一章,但是第一篇写的却不是java并发包中类,...

2019/07/29 16:06
48
Java并发源码之ReentrantLock

ReentrantLock介绍 ReentrantLock是一个可重入的互斥锁,与使用synchronized方法和语句访问的隐式监视锁具有相同的基本行为和语义,但具有扩展功能。ReentrantLock属于最后一个成功加锁并且还...

2017/10/20 14:09
103
JDK容器学习之CopyOnWriteArrayList:线程安全保障机制

JDK容器学习之CopyOnWriteArrayList 列表容器常见的有ArrayList和LinkedList,然而两者都是非线程安全的,若应用场景对线程安全有需求,则可以使用CopyOnWriteArrayList来代替传统的Vector ...

jdk
2017/10/20 14:05
130
多线程之Join方法介绍

说到join的使用,这边先讲一个案例。 假设这边有一个线程,在run方法里面随机睡眠一段时间。因为睡眠时间的不确定性,所以如果想要等到这个线程执行完在去执行另外一个线程的话,用睡眠唤醒另...

2017/05/20 09:12
56
JAVA源码之StringBuffer扩容机制

起因 做java开发有一些年头,常用的工具类相比大家都很熟悉,但是对于其中的实现机制,如果不曾细看,还真回答不上来,前日一友人问起StringBuffer和StringBuilder有什么区别,我自以对答如流...

2017/05/12 19:12
713
Java开源项目整理

1. 整理出一些使用比较广或者个人觉得比较好的java开源项目和资料供参考。 2. 如果你觉得好但是我没有列出的开源项目请告诉我,方便我添加到列表里。 3. 如果你发现信息描述有误请联系我,我会...

2017/05/12 19:06
434
indexOf和binarySearch的对比

在对一个列表进行检索的时候,我们经常使用的是indexOf方法进行检索,而Collections工具类也提供了一个检索的方法binarySearch,是使用二分搜索法搜索指定的列表。今天我们就来对比下这两个检...

2017/03/18 08:16
212
subList生成的列表和原列表的对比

在List类里面有一个方法是subList方法可以生成原表的视图,那么这个视图和原表有什么关系呢?下面我们就来试试。 首先我们定义一个包含两个字符串的列表list1,并加两个元素到list1,再构造一...

2017/03/18 08:12
131
subList方法的好处以及注意点

现在一个列表有50个元素,要求是删除下标为20~30的元素,那么我们第一个想法是什么?遍历这个列表,再删掉对吧?下面看下删除的程序。 这边有个注意的就是如果没问倒序的话,前面删完了,后面...

2017/03/18 08:10
301
ArrayList的for遍历和下标遍历的效率分析

因为List是有下标的,所以遍历的时候可以用增强for循环也可以用下标来遍历,那么这两个方式到底哪个效率更高呢?我们来假设一个模型,我们要计算一个380万条成绩的数据,我们放在ArrayList里...

2017/03/18 07:58
911
Java源码学习之:Semaphore

Semaphore工具类介绍 Semaphore类描述 从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放...

2017/02/27 09:46
224
Java显式锁学习总结之二:使用AbstractQueuedSynchronizer构建同步组件

Jdk1.5中包含了并发大神Doug Lea写的并发工具包java.util.concurrent,这个工具包中包含了显示锁和其他的实用同步组件。Doug Lea在构建锁和组件的时候,大多是以队列同步器(AbstractQueuedSy...

2017/02/25 08:52
249
Hashtable、synchronizedMap、ConcurrentHashMap 比较

Doug Lea的util.concurrent包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型List和Map的高性能的、线程安全的实现。Brian Goetz向您展示了用ConcurrentHashMap替换Hashtab...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部