面试
悲观锁:每次去拿数据总是认为别人会修改,所以在每次拿数据的时候都会上锁,这样别人拿这个数据就会被阻塞。java里面的synchronized就是一个悲观锁。
乐观锁:每次去拿数据都认为别人不会修改,但是在更新的时候,判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实就是提供的乐观锁。
悲观锁:每次去拿数据总是认为别人会修改,所以在每次拿数据的时候都会上锁,这样别人拿这个数据就会被阻塞。java里面的synchronized就是一个悲观锁。
乐观锁:每次去拿数据都认为别人不会修改,但是在更新的时候,判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实就是提供的乐观锁。