×

concurrent包

我的笔记 我的笔记 发表于2018-11-12 14:56:20 浏览2466 评论0

抢沙发发表评论

 concurrent在哪儿:jdk\jre\lib\rt.jar

本文从特性、分类、扩展方面一一道来。

1 特性

2 分类

2.1 Atomic包

包下实现了原子操作,见本作者已有博文。

原子操作核心思想是CAS(compare and swap)比较并操作,然后调用底层操作系统指令来完成。

原子操作有对基本数据类型boolean、Integer、Long操作,对数组操作,对对象引用操作,对volatile字段原子操作。

2.2 Lock包

公平锁

非公平锁

 

2.3 其他

BlockingQueue

CancellationException  

ConcurrentHashMap

CopyOnWriteArrayList和CopyOnWriteArraySet

 

 

CountDownLatch一个同步辅助类,等待正在其他线程中执行操作,并不是线程间的相互等待。

CyclicBarrier一个同步辅助类,容许一组线程相互等待,直到这组线程达到某个公共的屏障点。

Executor

TimeUnit,其内部的sleep用Thread.sleep实现,可以设置时间单位,可用性更好些。

 

我的笔记博客版权我的笔记博客版权