前面写的关于锁的文章太抽象,下面这篇文章给出了不同加锁方式之间的差距。
Java 8:StampedLock、ReadWriteLock以及synchronized的比较
我觉得这样的对比才能够更加深刻的理解不同枷锁方式的异同,以及乐观锁和悲观锁的区别。
下面一篇文章也写的非常好:
Java8 读写锁的改进:StampedLock(笔记)
摘要如下:
StampedLock是Java8引入的一种新的所机制,简单的理解,可以认为它是读写锁的一个改进版本,读写锁虽然分离了读和写的功能,使得读与读之间可以完全并发,但是读和写之间依然是冲突的,读锁会完全阻塞写锁,它使用的依然是悲观的锁策略.如果有大量的读线程,他也有可能引起写线程的饥饿
而StampedLock则提供了一种乐观的读策略,这种乐观策略的锁非常类似于无锁的操作,使得乐观锁完全不会阻塞写线程
下面这篇文章也值得读一下,更能够加深对锁的理解:
详解synchronized与Lock的区别与使用
Java 8:StampedLock、ReadWriteLock以及synchronized的比较
最新推荐文章于 2024-09-03 12:03:35 发布