1、synchronized是Java中的一个关键字,Lock是一个java 类;
2、synchronized无法判断获取锁的状态,而Lock可以判断是否获得锁;
3、synchronized会自动释放锁,而Lock必须要手动释放锁,如果不释放锁则会产生死锁;
4、synchronized线程1(获得锁,阻塞)、线程2(等待,傻傻的等);Lock锁就不一定会等下去---》lock.tryLock();
5、synchronized为可重入锁,不可以中断的,非公平的;Lock锁,可重入锁,可以判断锁,非公平(源码中构造方法,true为公平,false为非公平,默认为false);
6、synchronized适合少量的代码同步问题,Lock适合锁大量的同步代码。