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