ReentrantReadWriteLock和StampedLock,哪种锁更适合票据处理场景?
- 内容介绍
- 文章标签
- 相关推荐
本文共计952个文字,预计阅读时间需要4分钟。
ReentrantReadWriteLock是一种读写锁,允许多个线程同时读取,但只允许一个线程写入。在没有其他读写锁时,才能获取写入锁(乐观读取,避免写线程饥饿)。如果存在读取操作,写入锁会等待直到没有读取操作。这样,我的写入锁就能确保在无读取操作时立即获取。
ReentrantReadWriteLock读写锁
在没有任何读写锁的时候才可以取得写入锁(悲观读取,容易写线程饥饿),也就是说如果一直存在读操作,那么写锁一直在等待没有读的情况出现,这样我的写锁就永远也获取不到,就会造成等待获取写锁的线程饥饿。平时使用的场景并不多。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写,使得并发性相比一般的排他锁有了很大提升。
本文共计952个文字,预计阅读时间需要4分钟。
ReentrantReadWriteLock是一种读写锁,允许多个线程同时读取,但只允许一个线程写入。在没有其他读写锁时,才能获取写入锁(乐观读取,避免写线程饥饿)。如果存在读取操作,写入锁会等待直到没有读取操作。这样,我的写入锁就能确保在无读取操作时立即获取。
ReentrantReadWriteLock读写锁
在没有任何读写锁的时候才可以取得写入锁(悲观读取,容易写线程饥饿),也就是说如果一直存在读操作,那么写锁一直在等待没有读的情况出现,这样我的写锁就永远也获取不到,就会造成等待获取写锁的线程饥饿。平时使用的场景并不多。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写,使得并发性相比一般的排他锁有了很大提升。

