阿里P8面试扯了半小时:Java的Lock接口到底有什么用?
日期: 2021-04-21 分类: 个人收藏 534次阅读
并发编程的关键是什么,知道吗?
我淡淡一笑,还好平时就玩的高并发架构设计,不然真被你唬住了!
- 互斥
同一时刻,只允许一个线程访问共享资源 - 同步
线程之间通信、协作
而且这俩问题,管程都能解决。JUC通过Lock和Condition接口实现管程
- Lock 解决互斥
- Condition 解决同步
只见 P8 不慌不忙,又开始问道:
synchronized也是管程的实现,既然Java已经在SDK实现了管程,为什么还要提供另一种实现?难道JDK作者们喜欢“重复造轮子”?
它们还是有很大区别的。在JDK 1.5,synchronized性能差于Lock,但1.6后,synchronized被优化,将性能提高,所以1.6后又推荐使用synchronized。但性能问题只要优化一下就行了,没必要“重复造轮子”。
死锁问题讨论,推荐看我另一篇文章:
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
精华推荐