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