简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?

Lock 是 Java 5 以后引入的新的 API,和关键字 synchronized 相比主要相同点:

Lock 能完成 synchronized 所实现的所有功能;主要不同点:Lock 有比

synchronized 更精确的线程语义和更好的性能,而且不强制性的要求一定要获得

锁。synchronized 会自动释放锁,而 Lock 一定要求程序员手工释放,并且最好

finally 块中释放(这是释放外部资源的最好的地方)。

posted @ 2020-06-01 16:18  咔啡  阅读(586)  评论(0编辑  收藏  举报