CountDownLatch从字面上理解就是倒计时门栓的意思,它的实现原理同ReentrantLock一样,依然是借助AQS的双端队列,来实现原子的计数-1,线程阻塞和唤醒。
Java多线程(五)---显式锁和ReentrantLock
发表于
|
分类于
Java多线程
Java并发包中的显示锁接口和类位于包java.util.concurrent.locks下,主要的接口和类有:
- 锁接口Lock,主要实现类是ReentrantLock;
- 读写锁接口ReadWriteLock,主要实现类是ReentrantReadWriteLock
本篇文章主要介绍接口Lock和实现类ReentrantLock。
Java多线程系列(四)---线程间通信
发表于
|
分类于
Java多线程
多线程之间除了竞争访问同一个资源外,也经常需要互相协作完成一件事情。那么它们怎么协作呢?我们就来介绍Java多线程协作的基本机制wait/notify。我们前面在多线程的基础知识介绍过,我们通过synchronized来实现多个线程同步调用方法或者执行代码块。而多线程之间的协作机制一般都是使用synchronized和wait/notify共同完成线程间协作。
Java多线程系列(三)---CAS
发表于
|
分类于
Java多线程
CAS(Compare and swap或者CompareAndSet)比较和替换是设计并发算法时用到的一种技术。简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值。这听起来可能有一点复杂但是实际上你理解之后发现很简单,接下来,让我们跟深入的了解一下这项技术。