Synchronized和Lock的区别
- Synchronized是内置的Java关键字,Lock是一个类
- Synchronized无法判断获取锁的状态,Lock可以判断是否获取到了锁
- Synchronized会自动释放锁,Lock必须要手动释放锁!如果不释放锁,会出现死锁的可能
- Lock可以让等待锁的线程响应中断,而synchronized却不行,使用synchronized时,等待的线程会一直等待下去,不能够响应中断.
- Synchronized 可重入锁,不可以中断的,非公平;Lock ,可重入锁,可以 判断锁,非公平(可以自己设置);
*Synchronized 适合锁少量的代码同步问题,Lock 适合锁大量的同步代码!