说一下Synchronized、Lock锁的区别?
我所了解的这两个锁的最大区别是:
Synchronized是java的关键字,实在JVM层次上的,而Lock是一个Java
Synchronized是一个重锁(当一个线程获取到了锁,那么其他线程必须等待当前线程锁的释放),而Lock的锁是轻量级锁,并且可以获取锁的状态
Synchronized这个锁是基于JVM实现的,然后锁内出现异常,由JVM进行锁的自动释放,而Lock锁,不会,必须要在finally里面处理lock.close(),否则就会造成死锁现象。

乐观锁、悲观锁