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