concurrent包
程序员文章站
2022-11-30 19:08:07
concurrent在哪儿:jdk\jre\lib\rt.jar 本文从特性、分类、扩展方面一一道来。 1 特性 2 分类 2.1 Atomic包 包下实现了原子操作,见本作者已有博文。 原子操作核心思想是CAS(compare and swap)比较并操作,然后调用底层操作系统指令来完成。 原子操 ......
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一个同步辅助类,调用await方法时,任何线程都被阻塞,直到锁计数减少为0,然后在该点等待的所有线程才被释放。
cyclicbarrier一个同步辅助类,容许一组线程相互等待,直到这组线程达到某个公共的屏障点。
executor
timeunit,其内部的sleep用thread.sleep实现,可以设置时间单位,可用性更好些。