今天爱分享给大家带来简述 synchronized 和 java.util.concurrent.locks.Lock 的异同 ?【面试题详解】,希望能够帮助到大家。
主要相同点:Lock 能完成 synchronized 所实现的所有功能
主要不同点:Lock 有比 synchronized 更精确的线程语义和更好的性能。synchronized
会自动释放锁,而 Lock 一定要求程序员手工释放,并且必须在 finally 从句中释放。
Lock 还有更强大的功能,例如,它的 tryLock 方法可以非阻塞方式去拿锁。