随笔分类 -  java / 并发

java并发
摘要:CAS(Compare and Swap)是一种原子操作,用于实现乐观锁的一种方式。CAS 操作包括三个参数:内存地址(或变量),期望值和新值。CAS 操作会先比较内存地址处的值和期望值是否相等,如果相等,则将该内存地址的值更新为新值;如果不相等,则不做任何操作。CAS 操作是一种无锁算法,可以保证 阅读全文
posted @ 2024-04-12 09:02 黄橙 阅读(164) 评论(0) 推荐(0)
摘要:ABA 问题描述: 假设有两个线程,线程 1 和线程 2,线程 1 工作时间需要 10 秒,线程 2 工作需要 2 秒; 主内存值为 A,第一轮线程 1 和线程 2 都把 A 拿到自己的工作内存; 第 2 秒,线程 2 开始执行,线程 2 工作完成把 A 改成了 B ; 第 4 秒,线程 2 把 B 阅读全文
posted @ 2024-03-22 10:00 黄橙 阅读(51) 评论(0) 推荐(0)
摘要:AQS(AbstractQueuedSynchronizer)是 Java 中用于构建锁和同步器的框架,它是并发包中很多同步类的基础。AQS 提供了一种基于 FIFO 等待队列的同步器实现,通过内置的队列和状态管理机制,可以实现各种同步器,如 ReentrantLock、CountDownLatch 阅读全文
posted @ 2024-03-22 09:14 黄橙 阅读(91) 评论(0) 推荐(0)
摘要:ReentrantReadWriteLock 介绍 ReentrantReadWriteLock 是 Java 中的一个读写锁实现,它包含了两种锁:读锁和写锁。读锁是共享锁,多个线程可以同时获取读锁进行读操作,但是写锁是排他锁,只有一个线程可以获取写锁进行写操作。ReentrantReadWrite 阅读全文
posted @ 2024-03-14 10:43 黄橙 阅读(45) 评论(0) 推荐(0)
摘要:ReentrantLock 介绍 ReentrantLock 是 Java 中的一个可重入锁,它提供了与 synchronized 关键字类似的功能,但相比 synchronized,ReentrantLock 提供了更多的灵活性和功能。 定义:ReentrantLock 是一个可重入且独占式的锁, 阅读全文
posted @ 2024-03-13 17:39 黄橙 阅读(466) 评论(0) 推荐(1)