死磕Java——StampedLock

本文探讨了Java中的StampedLock,这是一种容量增强型锁,提供读写控制的三种模式:独占写锁、共享悲观读锁和乐观读锁。文章介绍了其基本用法,特别是writeLock写锁的使用,并对StampedLock的源码进行了简单分析,解析了Static变量的含义。
摘要由CSDN通过智能技术生成

一、死磕Java——StampedLock

StampedLockJDK1.8新增的一种基于容量的锁,可以说是对ReentrantReadWriteLock锁的一种补充,StampedLock提供了三种模式的读写控制,简单说明如下:

  • 写锁writeLock,是个排它锁或者叫独占锁,同时只有一个线程可以获取该锁。
  • 悲观读锁readLock,是个共享锁,在没有线程获取独占写锁的情况下,同时多个线程可以获取该锁,如果已经有线程持有写锁,其他线程请求获取该读锁会被阻塞。
  • 乐观读锁tryOptimisticRead

1.1.StampedLock基本的使用

1.1.1.writeLock写锁

class MyNumData {

    int num, age = 0;
    StampedLock stampedLock = new StampedLock();

    public void add(int x, int y) {
        long stamp = stampedLock.writeLock();
        try {
            num += x;
            age += y;
        } finally {
            stampedLock.unlockWrite(stamp);
        }
    }
}

1.2.StampedLock源码简单分析

1.2.1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值