摘要: CountDownLatch一般称为“倒计数器”,比如有个任务A,需要等其他几个任务执行完之后才可以执行;或者有这么一个业务:在解析Excel时,需要将Excel中的所有数据解析并校验完主线程才可以继续接下来的任务,这时候就可以使用这个类 基本结构 这个类的功能也是在AQS的基础上实现的,但它与之前 阅读全文
posted @ 2021-07-15 16:13 扭不动的奥利奥 阅读(249) 评论(0) 推荐(0)
摘要: list 是我们平时工作中应用最多的集合之一,但ArrayList是线程不安全的如果想使用线程安全的话可以使用Vector,这个类虽然是线程安全的,但效率比较低下,在JUC包中还有一个类可以代替Vector,那就是今天的主角:CopyOnWriteArrayList——写时复制,看名字应该可以猜到在 阅读全文
posted @ 2021-07-14 17:28 扭不动的奥利奥 阅读(93) 评论(0) 推荐(0)
摘要: 从这个类名应该就能猜到这是一个读写锁,当我们在读多写少的场景下可以使用这个类来控制并发。 读和写是互斥的,当个写的线程获取到锁时,其他写和读的线程都无法获取锁,只能等该写线程释放锁之后才可以。 基本结构 ReentrantReadWriteLock实现了ReadWriteLock接口,这个接口只有两 阅读全文
posted @ 2021-07-13 18:07 扭不动的奥利奥 阅读(68) 评论(0) 推荐(0)
摘要: 给代码加锁可以使用synchronized进行加锁,这种加锁和释放锁是隐式的。也可以使用ReentrantLock进行显示的加锁和释放锁,分别对应lock和unlock方法。 ReentrantLock是一个互斥锁,分为公平锁和非公平锁。当我们创建一个ReentrantLock时默认是非公平锁,因为 阅读全文
posted @ 2021-07-13 09:57 扭不动的奥利奥 阅读(150) 评论(0) 推荐(0)
摘要: 目录: 1. 锁 2. AQS基本介绍 2.1 成员变量 2.2 节点 2.3 不可变方法 2.4 需要重写的方法 2.5 模板方法 2.5.1 acquire 2.5.2 release 2.5.3 acquireInterruptibly 2.5.4 acquireShared 2.5.5 re 阅读全文
posted @ 2021-07-11 19:56 扭不动的奥利奥 阅读(87) 评论(0) 推荐(0)