并发编程
文章平均质量分 74
世界屋顶
这个作者很懒,什么都没留下…
展开
-
CAS非阻塞算法及ABA问题
独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁:每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止。一、CAS 操作乐观锁用到的机制就是CAS,Compare and Swap。CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则...原创 2018-05-27 11:49:08 · 1006 阅读 · 1 评论 -
关于在AtomicInteger的static块中unsafe.objectFieldOffset干什么用的简介
sun.misc.Unsafe是JDK内部用的工具类。它通过暴露一些Java意义上说“不安全”的功能给Java层代码,来让JDK能够更多的使用Java代码来实现一些原本是平台相关的、需要使用native语言(例如C或C++)才可以实现的功能。该类不应该在JDK核心类库之外使用。JVM的实现可以自由选择如何实现Java对象的“布局”,也就是在内存里Java对象的各个部分放在哪里,包括对象的实例字段和...原创 2018-06-12 23:07:51 · 10064 阅读 · 2 评论 -
AbstractQueuedSynchronizer源码分析
AbstractQueuedSynchronizer是concurrent工具包的核心抽象类,也是lock,Semaphore、CountDownLatch的基础。(CyclicBarriar内部是通过reentrantlock实现)一.源码分析1.继承AbstractQueuedSynchronizer继承AbstractOwnableSynchronizerpublic abstract cl...转载 2018-06-18 11:01:47 · 819 阅读 · 0 评论