Synchronized锁和Lock锁
1、synchronized是JVM层面实现的,java提供的关键字,Lock是API层面的锁。
2、synchronized不需要手动释放锁,底层会自动释放,Lock则需要手动释放锁,否则有可能导致死锁。
3、synchronized等待不可中断,除非抛出异常或者执行完成, Lock可以中断,通过interrupt()可中断。
4、synchronized是非公平锁,Lock是默认公平锁,当传入false时是非公平锁。
5、synchronized不可绑定多个条件,Lock可实现分组唤醒需要唤醒的锁。