
CAS
焦虑的二狗
这个作者很懒,什么都没留下…
展开
-
ReentrantReadWriteLock源码讲解
简介 现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源;但是如果一个线程想去写这些共享资源,就不应该允许其他线程对该资源进行读和写的操作了。 针对这种场景,JAVA的并发包提供了读写锁ReentrantReadWriteLock,它表示两个锁,一个是读操作相关的锁,称为共享锁;一个是写相关的锁,称为排他锁,描述如下: 线程进入读锁的前提条件: 没有其他线程的写锁, 没有写请求或者有写请求原创 2021-11-06 23:26:21 · 191 阅读 · 0 评论 -
AtomicInteger cas乐观锁的累加方式 & cas下的ABA问题复现
package com.autonavi.collapse.deteleable; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicStampedReference; import java.util.stream.IntStream; public class Test {原创 2021-10-20 23:29:32 · 326 阅读 · 0 评论 -
CAS累加操作导致ABA问题描述及解法
import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicStampedReference; import java.util.stream.IntStream; public class Test { //验证volatile的线程安全问题 private static cl.原创 2021-03-18 23:21:57 · 229 阅读 · 0 评论