![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
锁
OneTask
这个作者很懒,什么都没留下…
展开
-
【Java 基础 10】CountDownLatch和CyclicBarrier
CountDownLatch 源码 package java.util.concurrent; import java.util.concurrent.locks.AbstractQueuedSynchronizer; public class CountDownLatch { // 同步锁,继承AQS抽象同步器 private static final class S...原创 2020-05-05 00:34:11 · 120 阅读 · 0 评论 -
【Java 基础7】CAS以及CAS典型的ABA问题
CAS Compare and swap,比较和替换,通过利用CPU的CAS指令对缓存加锁或总线加锁的方式来实现多处理器之间的原子操作。 实现过程,线程想将内存值V修改为新值U,线程内部有一个V的预期值E,当且仅E和V相等时,才将V修改为U,否则不进行操作。 ABA问题 在线程T1修改var之前,线程T2将var=A修改为var=B,又将var=B修改为var=A,线程T1不能感知到...原创 2020-04-25 22:53:55 · 133 阅读 · 0 评论 -
【Java 基础 6】锁-sychronized和Lock
sychronized Java内置锁,基于Montier实现,通过moniterenter进入和moniterexit退出实现方法和代码块的同步,Montier依赖于操作系统底层的MutexLock(互斥锁)实现 作用方式 普通同步方法(实例方法),锁是当前实例对象 ,进入同步代码前要获得当前实例的锁 静态同步方法,锁是当前类的class对象 ,进入同步代码前要获得当前类class对象的锁...原创 2020-04-23 22:41:33 · 373 阅读 · 0 评论