synchronized(内置锁):
代码间接容易上手,只需在方法上添加synchronized 或者使用 synchronized 代码块即可自动释放锁.
lock(显示锁):
lock接口子类ReentrantLock 在需要尝试获取锁,或者超时获取锁,或者锁可以中断,或者公平锁的情况下使用手动释放锁.
synchronized和ReentrantLock都是可重入锁:
synchronized 获取几次锁释放几次锁(内置锁计数器)
ReentrantLock不过获取多少次锁只释放一次
ReadWriteLock读写锁接口
ReentrantReadWriteLock 读写锁子类
lock.readLock();//读锁
lock.writeLock();//写锁
使用场景:读多写少时