ReentrantReadWriteLock和StampedLock,哪种锁更适合票据处理场景?

2026-06-10 09:095阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计952个文字,预计阅读时间需要4分钟。

ReentrantReadWriteLock和StampedLock,哪种锁更适合票据处理场景?

ReentrantReadWriteLock是一种读写锁,允许多个线程同时读取,但只允许一个线程写入。在没有其他读写锁时,才能获取写入锁(乐观读取,避免写线程饥饿)。如果存在读取操作,写入锁会等待直到没有读取操作。这样,我的写入锁就能确保在无读取操作时立即获取。

ReentrantReadWriteLock读写锁

在没有任何读写锁的时候才可以取得写入锁(悲观读取,容易写线程饥饿),也就是说如果一直存在读操作,那么写锁一直在等待没有读的情况出现,这样我的写锁就永远也获取不到,就会造成等待获取写锁的线程饥饿。平时使用的场景并不多。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写,使得并发性相比一般的排他锁有了很大提升。

阅读全文

本文共计952个文字,预计阅读时间需要4分钟。

ReentrantReadWriteLock和StampedLock,哪种锁更适合票据处理场景?

ReentrantReadWriteLock是一种读写锁,允许多个线程同时读取,但只允许一个线程写入。在没有其他读写锁时,才能获取写入锁(乐观读取,避免写线程饥饿)。如果存在读取操作,写入锁会等待直到没有读取操作。这样,我的写入锁就能确保在无读取操作时立即获取。

ReentrantReadWriteLock读写锁

在没有任何读写锁的时候才可以取得写入锁(悲观读取,容易写线程饥饿),也就是说如果一直存在读操作,那么写锁一直在等待没有读的情况出现,这样我的写锁就永远也获取不到,就会造成等待获取写锁的线程饥饿。平时使用的场景并不多。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写,使得并发性相比一般的排他锁有了很大提升。

阅读全文