1.Synchronized是内置的JAVA关键字,lock是一个java类
2.Synchronized无法判断获取锁的状态,Lock可以判断是否获取到了锁
3.Synchronized会自动释放锁,lock需要手动释放锁(如果不是释放锁可能会造成死锁)
4.Synchronized线程1(获得锁)、线程2(等待),lock锁就不一定会等待下去
5.Synchronized可重入锁,不可以中断的,非公平,lock可重入的,可以判断锁,非公平(可以自己设置)
6.Synchronized适合锁少量的代码同步问题,lock锁适合锁大量的同步代码