0
点赞
收藏
分享

微信扫一扫

OD C卷 - 宽度最小的子矩阵

艾晓雪 2024-07-26 阅读 9

一、Sychronized关键字        

1.1Synchronized使用

三种方式:

1.2锁策略的synchronized原理

        以上关于synchronized的讲解是属于在代码层次上的原理,关于锁还有一部分很重要的就是锁的策略,尤其对于synchronized来说,她有以下的一些特性:

二、什么是CAS(Compare-And-Swap)

CAS是一种原子操作,用于在多线程环境下实现无锁并发。它包含三个操作数:

代码示例

import java.util.concurrent.atomic.AtomicInteger;

public class OptimisticLockExample {
    private AtomicInteger value = new AtomicInteger(0);

    public void increment() {
        int oldValue;
        int newValue;
        do {
            // 获取当前值
            oldValue = value.get();
            // 计算新值
            newValue = oldValue + 1;
            // 尝试用CAS将旧值替换为新值
        } while (!value.compareAndSet(oldValue, newValue));
    }
}

优点

缺点

总结

       CAS(Compare-And-Swap)是一种用于实现无锁并发的原子操作,通过比较和交换的方式确保数据的一致性。它在乐观锁中得到了广泛应用,特别是在Java的java.util.concurrent.atomic包中,如AtomicIntegerAtomicLong等类。虽然CAS机制有其优点,但也存在一些潜在的问题,如ABA问题和自旋等待,需要根据具体情况进行权衡和处理。

 

 

举报

相关推荐

0 条评论