1.synchronized 内置java关键字 lock是java类
2.synchronized 无法获取锁的状态 lock可以判断是否获取到锁
3.synchronized 会自动释放锁 lock必须手动释放,如果不释放就会成为死锁
4.synchronized 在多线程的情况下,如果一条线程执行时间很久,后面的线程会一直等待。 lock锁不会等
5.synchronized 可重入锁,不可以中断,非公平。 lock可重入锁,可以判断锁,可以设置公平或非公平
6.synchronized 适合少量代码同步问题 lock适合锁大量同步代码