摘要: CountDownLatch 倒计时锁 CyclicBarrier 循环栅栏 Semaphore 信号量 主要用于两个目的,一个是用于多个共享资源的互斥使用,另一个用于并发线程数的控制 线程顺序控制示例 实现三个线程A->B->C启动,要求如下: AAA打印5次,BBB打印10次,CCC打印15次 阅读全文
posted @ 2021-07-02 05:54 一柒微笑 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 1.公平锁与非公平锁? 公平锁:遵循FIFO(先进先出)的原则,先到的线程优先获取资源 非公平锁:后到的线程有可能先获取到资源 ReentrantLock,ReentrantReadWriteLock 默认构造都是非公平锁,非公平锁的优点在于吞吐量比公平锁大。synchronized也是非公平锁 2 阅读全文
posted @ 2021-07-02 04:37 一柒微笑 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 1.首先运行这两段代码会抛出一个java.util.ConcurrentModificationException的异常 public class ContainerNotSafeDemo { public static void main(String[] args) { List<String> 阅读全文
posted @ 2021-07-02 03:27 一柒微笑 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 1.CAS是什么? Compare And Swap,比较并交换,它是一条CPU并发原语。功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。 调用Unsafe类中的CAS方法,JVM会帮我们实现出CAS的汇编指令,这是依赖与硬件的功能实现的原子操作。CAS是一种系统原语 阅读全文
posted @ 2021-07-02 00:44 一柒微笑 阅读(200) 评论(0) 推荐(0) 编辑