synchronized
- 关键字,基于jvm
- 锁释放:@1:获得锁的线程执行完了该代码块 @2.线程执行出现异常,是一种被动方式释放,通过Monitor.exit()释放,Monitor更多讲解参见:https://blog.youkuaiyun.com/ignorewho/article/details/80854625
- 是一种可重入锁、可中断锁,
- 适用于并发少
Lock
- 接口,基于java编程
- 调用Lock.unlock()释放锁,是一种主动方式释放
- 分为:ReentrantLock读写锁,ReadWriteLock可重入锁,公平锁,可中断锁
- 高并发时比synchronized性能高