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