1、Synchronzed是java关键字基于JVM层面;Lock指具体的类(ReentrantLock)
2、Synchronzed会自动释放锁;Lock需要手动释放锁
3、Synchronzed是非公平锁;Lock默认是非公平锁,但可以根据构造参数指定为公平锁
4、Synchronzed不可中断,除非异常或成功执行结束;Lock可中断设置超时tryLock(timeout,unit)或lockInterruptibly()放代码块里,调用interrupt()方法中断。
5、Synchronzed不能唤醒指定线程;Lock可以唤醒指定线程(Condition);lock.newCondition()