谈谈悲观锁
乐观锁,悲观锁,并不是特指什么具体的锁,而是一种策略,思想。
悲观锁就是比较悲观,认为自己使用数据的时候,一定会有其他线程来修改数据,所以在获取数据的时候,会先加锁,确保数据不会被其他线程修改。
悲观锁的实现:
● Synchronized 关键字
● Lock 接口的实现类,比如 ReentrantLock
像乐观锁适用于写比较少的情况下,即冲突真的很少发生的时候,这样可以省去锁的开销,加大了系统的整个吞吐量。但如果经常产生冲突,上层应用会不断的进行重试,这样反倒是降低了性能,所以这种情况下用悲观锁就比较合适。