1.Synchronized是内置的java关键字,Lock是一个java类
2.Synchronized无法判断获取锁的状态,Lock可以判断是否获取到了锁
3.Synchronized会自动释放锁,lock必须要手动释放锁,不然会死锁
4.Synchronized线程1(获得锁,阻塞),线程2(等待,一直等):Lock锁就不一定会等待下去
5.Synchronized可重入锁,不可以终端,非公平锁;Lock,可重入锁,是够公平可以自己设置,默认非公平,在()加上true变为公平锁
6.Synchronized适合锁少量的同步代码,Lock适合锁大量的同步代码