1.synchroniezd是java内置的关键字,在jvm中,lock是java类。
2.synchroniezd是无法判断当前是否获取锁的状态,lock是可以判断当前锁的状态。
3.synchronized在执行完同步代码块后会自动释放锁,lock需要在finally中手动释放。
4.synchronized当有多个线程获取锁时,其中一个获取到,其他线程会处于等待状态,lock则是无需等待,直接结束。
5.synchronized是可重入的,不可中断,非公平,lock是可重入的,可判断,可公平的。
6.synchronized是用于解决代码量少的同步问题,lock是可以解决同步代码量大的同步问题。
原文:https://www.cnblogs.com/zyhxiaochen/p/12157604.html